ml-model-validation-regulatory — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ml-model-validation-regulatory (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A model that influences care is a regulated, risk-bearing asset. This skill wraps the engineering of healthcare-predictive-modeling and explainable-ml-healthcare in the validation, documentation, and monitoring that governance and regulators expect turning a trained model into an auditable, maintainable production system aligned with GMLP, IEC 62304, and ISO 14971.
clinical workflow; ISO 14971 risk analysis of failure modes and mitigations.
acceptance thresholds (overall and per subgroup), and the analyses to run written before seeing test results.
benefit on held-out and external data; subgroup fairness against thresholds.
metrics, limitations, intended use, and explainability summary.
defined update/retraining procedure (and where applicable a Predetermined Change Control Plan).
live performance vs. acceptance thresholds, with alerts and a rollback plan.
# Pre-specified validation gate (pass/fail against thresholds)
import numpy as np
from sklearn.metrics import roc_auc_score
from sklearn.calibration import calibration_curve
def validate(y, p, groups, min_auroc=0.75, max_calib_err=0.10, min_subgroup_auroc=0.70):
report = {"auroc": roc_auc_score(y, p)}
frac_pos, mean_pred = calibration_curve(y, p, n_bins=10)
report["calibration_error"] = float(np.mean(np.abs(frac_pos - mean_pred)))
report["subgroups"] = {g: roc_auc_score(y[idx], p[idx]) for g, idx in groups.items()}
report["PASS"] = (report["auroc"] >= min_auroc
and report["calibration_error"] <= max_calib_err
and all(v >= min_subgroup_auroc for v in report["subgroups"].values()))
return report# Production drift monitor (Population Stability Index per feature)
def psi(expected, actual, bins=10):
q = np.quantile(expected, np.linspace(0,1,bins+1))
e = np.histogram(expected, q)[0]/len(expected) + 1e-6
a = np.histogram(actual, q)[0]/len(actual) + 1e-6
return float(np.sum((a-e)*np.log(a/e))) # alert if > 0.25validation_protocol.md (pre-registered) and validation_report.md (results vs. gate).model_card.md + datasheet.md governance-ready documentation.risk_analysis.md ISO 14971-style hazard/mitigation table.monitoring_plan.md + a drift/performance dashboard spec with alert thresholds.Bridges data science and the medical-device quality world a natural complement to the repo's iso-13485-certification and hipaa-compliance skills. Encodes the non-negotiables for clinical AI: external/temporal validation, calibration, subgroup fairness, and live monitoring. This is documentation and process tooling, not legal advice; involve your regulatory/quality function for actual submissions.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.