Use Case
CI/CD Quality Gate
Your CI tests code quality. Records tests data quality. Add FHIR validation to your pipeline in under 5 minutes.
For: IG authors, FHIR dev teams, health-tech engineers, AI agent builders
The problem
Your pipeline validates code. Who validates the data?
You have unit tests, integration tests, linting, type checks — all running on every pull request. But the FHIR data your application produces or consumes? No gate. A mapping change silently breaks conformance. A profile update introduces new constraints that your test data doesn't cover. You find out in production.
IG authors face the same gap: profile changes are published without regression tests against real data. Constraint errors only surface in downstream implementations — weeks or months after the IG release.
And increasingly, AI agents generate FHIR resources at scale — automated mapping pipelines, Claude for Healthcare workflows, MCP-based agents. Without a validation gate, AI-generated output reaches production unchecked.
FHIR data without quality gates is untested code.
How Records solves it
A conformance gate in your pipeline — red/green on every PR.

Records treats data quality like code quality. Your CI pipeline already runs unit tests, linting, and type checks. Records adds FHIR conformance as another gate: structural validation, profile conformance, terminology binding checks, reference integrity, invariant evaluation, custom rules, metadata validation, and anomaly detection — the 8 validation aspects — run on every PR. The engine is pure TypeScript — no JVM, no cold start, under 100ms per resource. It runs anywhere Node.js runs: CI runners, Docker, edge environments.

Every PR triggers a validation run. The run history tracks conformance across all PRs — pass, warn, or fail. Baseline markers show the reference point for delta comparison.
For IG authors: Records validates your implementation guide against a test corpus on every pull request. Profile changes are regression-tested against real data before publication. Constraint errors surface in the PR, not in downstream implementations weeks later. The same validation is available as an MCP server and Anthropic Agent Skill — IG authors using Claude for FHIR development get validation feedback without leaving their workflow.
When a check fails, drill into issues grouped by validation aspect — structural, profile, terminology, metadata — to find the root cause.


Select an issue to see affected resources and field-level errors. Create triage actions directly from the investigation view.
Pure TypeScript — no JVM
No Java runtime, no cold start. Under 100ms per resource. Runs anywhere Node.js runs — CI runners, Docker, edge.
8 validation aspects
Structural, profile, terminology, reference, invariant, custom rules, metadata, anomaly — all configurable per project.
PR-level delta
Every PR is compared against the test baseline. New conformance errors block the merge. Resolved errors are tracked.
AI agent integration
Built-in MCP server and Anthropic Agent Skill. AI agents that generate FHIR get validation feedback in the same workflow.
How to integrate
Add FHIR validation to your CI pipeline in under 5 minutes.
GitHub Actions
# .github/workflows/fhir-validation.yml
- name: FHIR Validation Gate
run: npx @records-fhir/cli validate \
--server=$TEST_FHIR \
--ig=<project-IG>IG Author (local corpus)
records validate \
--ig=./ \
--corpus=./test-corpus/ \
--baseline=latestWhat gets pinned
| Pin | Purpose |
|---|---|
ig_packages | Profile versions pinned per branch |
validator_version | Same engine across all PR runs |
thresholds_applied | Pass/fail criteria consistent across PRs |
environment_label | Separates PR test runs from staging/production |
Run directly via npx — no installation required. Works with GitHub Actions, GitLab CI, Azure Pipelines, or any CI system that runs Node.js. No server-side deployment required for the CI gate — the CLI connects to your test FHIR server directly.
What you get
PR conformance gate
Red/green check blocks non-conformant changes before merge.
Pure TypeScript — no JVM
Under 100ms per resource. No Java, no cold start. Runs in any CI environment with Node.js.
Root-cause drill-down
From PR check to specific resources and field-level errors.
Per-environment baselines
Delta on every PR against test baseline, on every deploy against target.
MCP server for AI agents
Same validation via Model Context Protocol. AI agents that generate FHIR get quality feedback in their workflow.
IG regression testing
Validate your IG against a defect corpus on every PR. Catch constraint errors before publication.
Data quality deserves the same rigor as code quality
Your pipeline gates code changes. Why not data changes?
| Without Records | With Records CI gate | |
|---|---|---|
| FHIR conformance testing | Manual, after deployment | Automated, on every PR |
| Regression detection | ne — errors found in production | Delta against baseline on every PR |
| Time to integrate | Days/weeks of custom scripting | < 5 minutes via npx |
| IG authoring feedback | Weeks (downstream implementers report) | Minutes (PR check fails) |
| Evidence trail | ne | Per-PR validation report with reproducibility |
| AI agent validation | Not supported | MCP server + Anthropic Agent Skill — same gate for AI-generated FHIR |
Frequently asked questions
Under 5 minutes. Add one step to your GitHub Actions or GitLab CI config: npx @records-fhir/cli validate --server=$TEST_FHIR --ig=<project-IG>. No installation, no server deployment, no configuration files.
The CLI can run standalone for basic validation. For delta comparison, baseline tracking, and evidence reports, it connects to a Records instance (SaaS or self-hosted).
Yes. Use --ig=./ to point at your local IG directory and --corpus=./test-corpus/ to validate against a set of test resources. This is how IG authors use Records for regression testing.
Any CI system that runs Node.js: GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, CircleCI, Bitbucket Pipelines. The CLI is distributed via npm (npx @records-fhir/cli).
Records produces a pass/fail signal as a CI check result. Whether that check is required to pass before merge is configured in your CI system's branch protection rules — Records does not impose policy.
See this on your own data.
We'll set up a validation gate in your pipeline — live, in 30 minutes.