Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ISO 13485 internal audit expertise for medical device QMS. Use for audit planning and execution, nonconformity classification, CAPA verification, external audit preparation, or audit program management.
.claude/skills/borghei-qms-audit-expert/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 143% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 242% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 132% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 127% | 0% |
ISO 13485 internal audit methodology for medical device quality management systems.
Before planning or executing the audit, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the audit plan.
Plan risk-based internal audit program:
| Risk Level | Frequency | Criteria | |------------|-----------|----------| | High | Quarterly | Design control, CAPA, production validation | | Medium | Semi-annual | Purchasing, training, document control | | Low | Annual | Infrastructure, management review (if stable) |
| Clause | Process | Focus Areas | |--------|---------|-------------| | 4.2 | Document Control | Document approval, distribution, obsolete control | | 5.6 | Management Review | Inputs complete, decisions documented, actions tracked | | 6.2 | Training | Competency defined, records complete, effectiveness verified | | 7.3 | Design Control | Inputs, reviews, V&V, transfer, changes | | 7.4 | Purchasing | Supplier evaluation, incoming inspection | | 7.5 | Production | Work instructions, process validation, DHR | | 7.6 | Calibration | Equipment list, calibration status, out-of-tolerance | | 8.2.2 | Internal Audit | Schedule compliance, auditor independence | | 8.3 | NC Product | Identification, segregation, disposition | | 8.5 | CAPA | Root cause, implementation, effectiveness |
Verify auditor independence before assignment:
Conduct systematic internal audit:
| Method | Use For | Documentation | |--------|---------|---------------| | Document review | Procedures, records | Document number, version, date | | Interview | Process understanding | Interviewee name, role, summary | | Observation | Actual practice | What, where, when observed | | Record trace | Process flow | Record IDs, dates, linkage |
Document Control (4.2):
Design Control (7.3):
CAPA (8.5):
See references/iso13485-audit-guide.md for complete question sets.
Document each finding with:
Requirement: [Specific ISO 13485 clause or procedure]
Evidence: [What was observed, reviewed, or heard]
Gap: [How evidence fails to meet requirement]Example:
Requirement: ISO 13485:2016 Clause 7.6 requires calibration
at specified intervals.
Evidence: Calibration records for pH meter (EQ-042) show
last calibration 2024-01-15. Calibration interval is
12 months. Today is 2025-03-20.
Gap: Equipment is 2 months overdue for calibration,
representing a gap in calibration program execution.Classify and manage audit findings:
| Category | Definition | CAPA Required | Timeline | |----------|------------|---------------|----------| | Major | Systematic failure or absence of element | Yes | 30 days | | Minor | Isolated lapse or partial implementation | Recommended | 60 days | | Observation | Improvement opportunity | Optional | As appropriate |
Is required element absent or failed?
├── Yes → Systematic (multiple instances)? → MAJOR
│ └── No → Could affect product safety? → MAJOR
│ └── No → MINOR
└── No → Deviation from procedure?
├── Yes → Recurring? → MAJOR
│ └── No → MINOR
└── No → Improvement opportunity? → OBSERVATION| Finding Severity | CAPA Depth | Verification | |------------------|------------|--------------| | Major | Full root cause analysis (5-Why, Fishbone) | Next audit or within 6 months | | Minor | Immediate cause identification | Next scheduled audit | | Observation | Not required | Noted at next audit |
See references/nonconformity-classification.md for detailed guidance.
Prepare for certification body or regulatory audit:
Documentation:
Personnel:
Facility:
references/iso13485-audit-guide.md contains:
references/nonconformity-classification.md contains:
bash# Generate optimized audit schedule python scripts/audit_schedule_optimizer.py --processes processes.json # Interactive mode python scripts/audit_schedule_optimizer.py --interactive # JSON output for integration python scripts/audit_schedule_optimizer.py --processes processes.json --output json
Generates risk-based audit schedule considering:
Output includes:
json{ "processes": [ { "name": "Design Control", "iso_clause": "7.3", "risk_level": "HIGH", "last_audit_date": "2024-06-15", "previous_findings": 2 }, { "name": "Document Control", "iso_clause": "4.2", "risk_level": "MEDIUM", "last_audit_date": "2024-09-01", "previous_findings": 0 } ] }
Track audit program effectiveness:
| Metric | Target | Measurement | |--------|--------|-------------| | Schedule compliance | >90% | Audits completed on time | | Finding closure rate | >95% | Findings closed by due date | | Repeat findings | <10% | Same finding in consecutive audits | | CAPA effectiveness | >90% | Verified effective at follow-up | | Auditor utilization | 4 days/month | Audit days per qualified auditor |
| Problem | Likely Cause | Resolution | |---------|-------------|------------| | Schedule optimizer produces no audits for a process | last_audit_date is recent and risk level is Low | Low-risk processes are scheduled annually. If the last audit was within 365 days, no new audit is generated. Increase risk_level or criticality_score to trigger earlier scheduling. | | Optimizer flags all processes as overdue | Date format in processes.json is incorrect | Use ISO 8601 format (YYYY-MM-DD) for last_audit_date. Invalid dates cause the tool to treat the last audit as missing. | | Interactive mode does not accept input | Terminal does not support stdin prompts | Use file-based input with --processes processes.json instead of --interactive. | | Audit schedule does not cover all ISO 13485 clauses | Input process list is incomplete | The optimizer schedules only the processes provided. Ensure all required clauses (4.2, 5.6, 6.2, 7.3, 7.4, 7.5, 7.6, 8.2.2, 8.3, 8.5) are represented in the input. | | Finding classified as Minor but should be Major | Classification was applied inconsistently | Apply the decision tree: systematic failure or absent element = Major; isolated lapse = Minor. Consider whether the finding could affect product safety (auto-escalate to Major). | | External auditor raises finding already closed internally | CAPA effectiveness verification not completed before external audit | Ensure all internal audit findings have completed CAPA with documented effectiveness verification before the external audit date. Close the loop, do not just complete the action. | | Audit report rejected by process owner | Findings not supported by objective evidence | Every finding must reference specific evidence (document number, record ID, observation details). Rework findings using the Requirement-Evidence-Gap format documented in this skill. |
In Scope:
Out of Scope:
| Skill | Integration | |-------|------------| | quality-manager-qms-iso13485 | Provides the QMS process framework that the audit program evaluates; audit results feed into management review inputs | | capa-officer | Major and Minor audit findings trigger CAPA initiation; CAPA effectiveness verification closes the audit finding loop | | quality-documentation-manager | Document control audit coverage (Clause 4.2) validates document numbering, approval workflows, and Part 11 compliance | | quality-manager-qmr | Audit program results are a required management review input (Clause 5.6.2); QMR oversees audit program effectiveness | | risk-management-specialist | Risk management process audit (Clause 7.1) verifies ISO 14971 implementation and risk file completeness |
Generates risk-based audit schedules optimized by process risk, findings history, and time since last audit.
| Flag | Required | Description | |------|----------|-------------| | --processes | Yes (or --interactive) | Path to JSON file containing process definitions with name, iso_clause, risk_level (HIGH/MEDIUM/LOW), last_audit_date, previous_findings, and criticality_score | | --interactive | No | Launch interactive mode for guided process entry (alternative to file input) | | --output | No | Output format: json for structured output, omit for human-readable text |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 13,536 | 12,042 | -11% | 1 | 1 | 0% | 2,209 | 5,378 | +143% | 0 | 0 | — |
case-06 | fail→fail | 13,322 | 11,347 | -15% | 1 | 1 | 0% | 2,230 | 5,433 | +144% | 0 | 0 | — |
case-01 | fail→fail | 23,092 | 29,976 | +30% | 1 | 1 | 0% | 3,749 | 8,682 | +132% | 0 | 0 | — |
case-02 | fail→fail | 30,750 | 25,553 | -17% | 1 | 1 | 0% | 5,155 | 7,810 | +52% | 0 | 0 | — |
case-03 | pass→pass | 12,818 | 9,860 | -23% | 1 | 1 | 0% | 2,011 | 5,175 | +157% | 0 | 0 | — |
case-04 | fail→fail | 14,214 | 10,329 | -27% | 1 | 1 | 0% | 2,240 | 5,204 | +132% | 0 | 0 | — |
case-07 | fail→pass | 6,660 | 3,620 | -46% | 1 | 1 | 0% | 1,210 | 4,141 | +242% | 0 | 0 | — |
case-08 | pass→pass | 12,588 | 8,411 | -33% | 1 | 1 | 0% | 1,971 | 4,891 | +148% | 0 | 0 | — |
case-09 | fail→pass | 13,703 | 9,404 | -31% | 1 | 1 | 0% | 2,197 | 5,098 | +132% | 0 | 0 | — |
case-10 | pass→pass | 14,024 | 9,156 | -35% | 1 | 1 | 0% | 2,214 | 4,951 | +124% | 0 | 0 | — |
case-11 | fail→pass | 13,331 | 9,854 | -26% | 1 | 1 | 0% | 2,075 | 5,155 | +148% | 0 | 0 | — |
case-12 | pass→pass | 16,513 | 9,032 | -45% | 1 | 1 | 0% | 2,631 | 5,077 | +93% | 0 | 0 | — |
case-13 | pass→pass | 11,988 | 4,679 | -61% | 1 | 1 | 0% | 2,075 | 4,411 | +113% | 0 | 0 | — |
case-14 | fail→pass | 13,515 | 7,446 | -45% | 1 | 1 | 0% | 2,123 | 4,825 | +127% | 0 | 0 | — |
case-15 | fail→pass | 18,894 | 18,503 | -2% | 1 | 1 | 0% | 2,710 | 6,305 | +133% | 0 | 0 | — |
case-16 | pass→pass | 14,368 | 16,526 | +15% | 1 | 1 | 0% | 2,361 | 6,281 | +166% | 0 | 0 | — |
case-17 | fail→fail | 21,031 | 16,603 | -21% | 1 | 1 | 0% | 3,036 | 6,074 | +100% | 0 | 0 | — |
case-18 | fail→pass | 11,020 | 5,297 | -52% | 1 | 1 | 0% | 1,670 | 4,371 | +162% | 0 | 0 | — |
case-19 | fail→pass | 23,787 | 22,696 | -5% | 1 | 1 | 0% | 3,970 | 7,465 | +88% | 0 | 0 | — |
case-20 | fail→fail | 21,243 | 35,239 | +66% | 1 | 1 | 0% | 3,266 | 8,986 | +175% | 0 | 0 | — |
case-21 | fail→fail | 20,528 | 30,852 | +50% | 1 | 1 | 0% | 3,471 | 8,904 | +157% | 0 | 0 | — |
case-22 | fail→fail | 34,997 | 36,052 | +3% | 1 | 1 | 0% | 6,146 | 9,714 | +58% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.