Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run a third-party / vendor security review and assign a risk tier with required controls. Use when asked to assess a vendor's security, run a third-party risk assessment, complete a security questionnaire about a vendor, or decide what due diligence a new tool needs. Produces a vendor risk assessment — a data/access-driven risk tier, the questionnaire focus, required evidence (SOC 2, pen test, DPA), residual risk, and an approve/conditional/reject recommendation.
.claude/skills/mohitagw15856-vendor-security-review/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 15% | 0% |
You inherit the security posture of every vendor that touches your data — and the right level of scrutiny depends on what they touch, not on how big their logo is. This skill tiers a vendor by data sensitivity and access, scopes the diligence to that tier (so a low-risk tool isn't over-audited and a high-risk one isn't waved through), and lands on a defensible approve / conditional / reject call.
Ask for these only if they aren't already provided:
1. Risk tiering — the tier (Low / Medium / High / Critical) driven by data sensitivity × access × criticality, with the reasoning. The tier sets how much diligence is warranted.
2. Diligence scope — what to require at this tier: e.g. Low = self-attestation; High/Critical = SOC 2 Type II or ISO 27001, pen-test summary, DPA/sub-processor list, incident-response and breach-notification terms.
3. Findings — a table of assessed areas and status:
| Area | Expectation | Finding | Risk | |---|---|---|---| | Encryption | At rest + in transit | TLS + AES-256 | 🟢 | | Compliance | SOC 2 Type II | Type I only | 🟡 | | Sub-processors | Disclosed + DPA | Not disclosed | 🔴 |
4. Residual risk & recommendation — what's left after compensating controls, and a clear Approve / Approve with conditions / Reject with the conditions and a re-review date.
scripts/vendor_risk.py (stdlib only) computes the risk tier and the baseline required evidence from the vendor's data/access/criticality profile, so tiering is consistent across reviewers:
bash# vendor.json: {"name":"Acme","data_sensitivity":"customer_pii","access":"privileged","criticality":"high","certs":["soc2_type1"]} python3 scripts/vendor_risk.py vendor.json python3 scripts/vendor_risk.py vendor.json --json
Third-party / vendor risk management practice — data-and-access-driven tiering, evidence-based diligence, and contractual risk transfer.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 26,260 | 23,014 | -12% | 1 | 1 | 0% | 2,961 | 4,034 | +36% | 0 | 0 | — |
case-02 | pass→pass | 20,310 | 27,435 | +35% | 1 | 1 | 0% | 2,316 | 3,749 | +62% | 0 | 0 | — |
case-03 | pass→pass | 26,988 | 16,981 | -37% | 1 | 1 | 0% | 2,546 | 2,418 | -5% | 0 | 0 | — |
case-04 | fail→pass | 17,763 | 16,097 | -9% | 1 | 1 | 0% | 1,972 | 3,613 | +83% | 0 | 0 | — |
case-05 | pass→pass | 25,921 | 21,383 | -18% | 1 | 1 | 0% | 2,737 | 3,094 | +13% | 0 | 0 | — |
case-06 | pass→pass | 12,660 | 15,409 | +22% | 1 | 1 | 0% | 1,605 | 2,232 | +39% | 0 | 0 | — |
case-07 | pass→pass | 18,359 | 9,996 | -46% | 1 | 1 | 0% | 2,137 | 2,827 | +32% | 0 | 0 | — |
case-08 | pass→pass | 20,873 | 17,225 | -17% | 1 | 1 | 0% | 2,461 | 3,091 | +26% | 0 | 0 | — |
case-09 | pass→pass | 20,923 | 13,828 | -34% | 1 | 1 | 0% | 2,414 | 2,223 | -8% | 0 | 0 | — |
case-10 | fail→pass | 23,579 | 28,989 | +23% | 1 | 1 | 0% | 2,625 | 4,023 | +53% | 0 | 0 | — |
case-11 | pass→pass | 24,883 | 19,094 | -23% | 1 | 1 | 0% | 3,146 | 3,686 | +17% | 0 | 0 | — |
case-12 | pass→pass | 16,227 | 19,644 | +21% | 1 | 1 | 0% | 1,947 | 3,365 | +73% | 0 | 0 | — |
case-13 | pass→pass | 13,564 | 13,570 | +0% | 1 | 1 | 0% | 2,349 | 3,092 | +32% | 0 | 0 | — |
case-14 | pass→pass | 26,196 | 22,710 | -13% | 1 | 1 | 0% | 1,605 | 4,068 | +153% | 0 | 0 | — |
case-15 | fail→pass | 20,045 | 18,742 | -7% | 1 | 1 | 0% | 2,310 | 2,967 | +28% | 0 | 0 | — |
case-16 | fail→pass | 25,048 | 13,180 | -47% | 1 | 1 | 0% | 2,243 | 2,259 | +1% | 0 | 0 | — |
case-17 | pass→pass | 20,843 | 17,993 | -14% | 1 | 1 | 0% | 2,246 | 2,863 | +27% | 0 | 0 | — |
case-18 | fail→pass | 25,665 | 23,731 | -8% | 1 | 1 | 0% | 3,185 | 3,659 | +15% | 0 | 0 | — |
case-19 | pass→pass | 20,026 | 23,474 | +17% | 1 | 1 | 0% | 2,946 | 3,712 | +26% | 0 | 0 | — |
case-20 | pass→pass | 16,697 | 17,504 | +5% | 1 | 1 | 0% | 1,997 | 3,127 | +57% | 0 | 0 | — |
case-21 | pass→pass | 12,363 | 13,800 | +12% | 1 | 1 | 0% | 1,477 | 2,220 | +50% | 0 | 0 | — |
case-22 | pass→pass | 11,777 | 17,107 | +45% | 1 | 1 | 0% | 2,225 | 3,071 | +38% | 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 +23 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.