Vendor risk
Skill eyesecurity/skills/plugins/complisec/skills/vendor-risk
ACTIVATE when integrating a new service, API, SaaS tool, SDK, npm/pip/maven package, Docker image, or any third-party dependency — or when discussing suppliers, vendors, processor agreements, or supply chain security. Also activate on imports from unknown packages or adding external webhooks/endpoints. Ensures every new vendor or dependency is assessed against the org's critical assets, data residency, and NIS2 Art. 21(2)(d) supply chain requirements.From its SKILL.md
npx -y skills add eyesecurity/skills --skill vendor-riskAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.1 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Vendor Risk Management
Every new integration is a supply chain decision. No vendor gets access without assessment.
Storage
- Vendor assessments:
.compliance/vendors/VND-YYYY-NNN-slug.json— one file per assessment - Approved vendor summary:
profile.json→suppliers[]— kept in sync after approval
Vendor assessment record
One JSON per vendor assessment. Created on first contact, updated through lifecycle.
{
"assessment_id": "VND-2026-001-hubspot",
"vendor_name": "HubSpot",
"status": "proposed | under-review | approved | conditional | rejected | offboarded",
"assessed_at": "ISO 8601",
"assessed_by": "agent | user",
"type": "saas | infra | service | library | api",
"data_shared": ["klantdata", "email", "contactgegevens"],
"criticality": "critical | important | standard",
"touches_critical_assets": ["Klant-administratiedata (CRM)"],
"checks": {
"dpa_signed": false,
"hosting_location": "EU (Ireland)",
"hosting_compliant": true,
"certification": "SOC2 Type II",
"access_scope": "API read/write to CRM contacts",
"least_privilege": true,
"exit_strategy": "CSV export available"
},
"decision": "approved | conditional | rejected",
"decision_reasoning": "Why this decision was made",
"conditions": ["DPA must be signed before go-live"],
"review_date": "ISO 8601 — next scheduled review",
"timeline": [
{ "timestamp": "ISO 8601", "action": "what happened", "actor": "who" }
]
}
Vendor lifecycle
1. Identify
When the agent detects a new vendor (user mentions a tool, code imports a new SDK, API call to unknown service):
- Check
profile.suppliers— is this vendor already known? - If unknown: flag immediately and start the assessment
2. Assess
| Check | Question | Fail = |
|---|---|---|
| Data flow | What data does this vendor access or receive? | If it touches a critical asset → criticality = critical |
| DPA/processor agreement | Is a Data Processing Agreement (DPA) signed? | Required if personal data is shared (GDPR Art. 28) |
| Hosting location | Where is data stored/processed? | If org has data residency constraints → check compliance |
| Security posture | Does the vendor have ISO 27001, SOC2 Type II, or equivalent? | No certification for critical vendor = HIGH risk |
| Access scope | What systems/APIs does the vendor need access to? Least privilege? | Broader than necessary = flag |
| Exit strategy | Can you extract your data and switch vendors? | Vendor lock-in on critical asset = risk |
3. Decide
| Outcome | When | Action |
|---|---|---|
| Approve | All checks pass, DPA in place, hosting compliant | Add to profile.suppliers with status "approved" |
| Conditional | Minor gaps (e.g. DPA pending, certification in progress) | Approve with deadline for remediation, flag for follow-up |
| Reject | Fails data residency, no DPA possible, touches critical asset without security posture | Do not integrate. Log decision via audit-logging |
4. Monitor
- Set
contract_review_date— review vendors annually at minimum, critical vendors every 6 months - When a vendor's certification expires or a breach is disclosed: re-assess
- Track vendor incidents — if a vendor reports a breach, start incident-management lifecycle
5. Offboard
When a vendor relationship ends:
- Revoke all access (API keys, accounts, network access)
- Verify data deletion or return per DPA terms
- Set
offboard_dateandstatus: "offboarded" - Log via audit-logging
Triggers for the agent
The agent flags a vendor risk event when:
- Code imports a new external dependency (
pip install,npm install, new API client) - User discusses integrating a new SaaS tool
- Code makes HTTP calls to a domain not in the approved supplier list
- A vendor's
contract_review_dateis past due - The agent discovers an undocumented data flow to an external service
Agent instructions
- When a new vendor or service appears in conversation or code, check
profile.suppliers. Unknown = create assessment record in.compliance/vendors/and start the lifecycle. - Cross-reference vendor data access against
profile.critical_assets. Touches a critical asset = criticality=critical. - Check data residency constraints from
profile.constraints. Flag hosting location violations. - For every vendor decision, log an ADR via audit-logging (
policy_ref: "NIS2 Art. 21(2)(d)"). - On approval: add vendor to
profile.suppliersand setreview_date. - Remind about overdue reviews based on
review_date. - On offboard: verify access revocation, update assessment record, set status "offboarded".
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most operations skills give in ~1.2k tokens
Counted across 483 of the 484 authors here whose files we hold, read 2026-08-07
- Collect monitoring data throughout the simulationin 14 of 483, across 6 files
- Set the random seed for reproducibilityin 14 of 483, across 6 files
- Validate simulations against analytical solutionsin 12 of 483, across 4 files
- Clarify goals, constraints, and inputsin 11 of 483, across 2 files
- Implement contract tests for integration pointsin 11 of 483, across 2 files
- Implement strangler fig infrastructure with API gatewayin 11 of 483, across 2 files
- Audit modernized components for security vulnerabilitiesin 11 of 483, across 2 files
- Avoid Python blocking calls in processesin 10 of 483, across 3 files
- Use resource context managers for automatic cleanupin 9 of 483, across 2 files
- Maintain consistent time unitsin 9 of 483, across 2 files
- Validate outcomes against success criteriain 8 of 483, across 1 file
- Analyze the legacy codebase for technical debtin 8 of 483, across 1 file
Said here and by no other author read
- flag unknown vendors immediately
- create an assessment record for unknown vendors
- cross-reference data access against critical assets
- check data residency constraints
- log every vendor decision via audit-logging
- add approved vendors to the supplier list
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.