vendor-risk-review
Reviews a vendor's SOC 2 report, DDQ, contract, or public vendor research against the interagency third-party risk lifecycle, covering report type, scope, opinion, exceptions, CUECs, residual risks, public findings, and open questions. Produces no risk rating and no approval decision. Use when the user says "review this SOC 2", "assess this third party", "what are the exceptions in this report", "write up a vendor risk review", or "what should we ask this vendor". Do NOT use for customer or beneficial-owner research (use kyc-research-pack), request trackers (use exam-request-response), regulatory-change triage (use reg-change-triage), enforcement read-across (use enforcement-action-review), workbook formatting (use built-in xlsx), or sending email (use built-in outlook-email).
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 107
- Forks
- 120
01 前言 Front Matter
- name
- vendor-risk-review
- license
- MIT
- metadata
- { "icon": "ShieldTask" }
- description
- Reviews a vendor's SOC 2 report, DDQ, contract, or public vendor research against the interagency third-party risk lifecycle, covering report type, scope, opinion, exceptions, CUECs, residual risks, public findings, and open questions. Produces no risk rating and no approval decision. Use when the user says "review this SOC 2", "assess this third party", "what are the exceptions in this report", "write up a vendor risk review", or "what should we ask this vendor". Do NOT use for customer or beneficial-owner research (use kyc-research-pack), request trackers (use exam-request-response), regulatory-change triage (use reg-change-triage), enforcement read-across (use enforcement-action-review), workbook formatting (use built-in xlsx), or sending email (use built-in outlook-email).
02 资源文件 8
- 许可证LICENSE1.1 KB
- 参考文档references/document-extraction.md8.7 KB
- 参考文档references/house-rules.md59.4 KB
- 参考文档references/reg-source-access.md11.3 KB
- 参考文档references/self-check.md8.2 KB
- 参考文档references/vendor-outline.md11.8 KB
- 参考文档references/workflow.md12.1 KB
- 脚本scripts/lint_deliverable.py74.8 KB
03 SKILL.md 正文
Scope
Do: review vendor SOC 2 reports, DDQs, contracts, CUECs, exceptions, subservice organizations, residual risks, public research, and vendor questions Do not: issue a risk rating, score, tier, or approval decision, paraphrase the opinion, treat out-of-scope criteria or carve-outs as covered, mark CUECs adopted without evidence, send anything to the vendor
When NOT to Use
- Researching a customer or beneficial owner — use
kyc-research-packinstead. - Triaging a regulatory change — use
reg-change-triageinstead. - Formatting, charting, or restyling an existing workbook — use
xlsxinstead.
Third-Party / Vendor Risk Review
Read the report properly, surface what it does and does not cover, and hand a reviewer the open questions.
No risk rating. No tier. No approval or rejection. Those are the third-party risk owner's
determinations — house-rules.md § 2.
Framework: the interagency guidance on third-party relationships (OCC Bulletin 2023-17 and its interagency counterparts), which rescinded OCC 2013-29 and 2020-10.
Read first
Read these in full before step 1. They are binding; this body only summarises them.
references/workflow.md— the full text of every step below, with the guardrails, source resolution, and footer detail.references/house-rules.md— destination gate, determination gate, identity resolution, markers, footers, and § 12 data minimisation (every artifact, search, and chat reply).references/reg-source-access.md— retrieving rules and guidance the review cites.references/document-extraction.md§ 4 — SOC 2 extraction. The field list there is mandatory.references/vendor-outline.md— default memo and exceptions table: the output format.references/self-check.md— the final self-check (step 9).
Workflow
1. Establish what you were given
Detail: workflow.md § 1. A "SOC 2" is often something else. Type II → proceed. Type I → design
at a point in time only, flagged. SOC 3 → no exceptions or CUECs. Bridge letter → management's
unaudited assertion. ISO certificate → a different framework. DDQ → self-reported and untested.
Marketing summary → GAP — supplied document is a summary, not the report. Scanned reports are
read with OCR.
2. Extract the mandatory fields
Detail: workflow.md § 2. Type · report period · criteria in scope · systems and locations ·
opinion type · exceptions · CUECs · subservice organizations and their treatment. A missing field
is a finding.
- Period: state the uncovered part explicitly, in months and
calendar days. - Criteria: out-of-scope criteria are untested, not passed.
- Subservice organizations: carve-out means not tested; list each one and what it does.
3. Quote the opinion — never paraphrase
Detail: workflow.md § 3. Quote the opinion paragraph, and a qualified opinion's basis
paragraph, verbatim. Every locator is read, not guessed: cite the section heading and page
printed where each quote sits, and re-open the page in the self-check.
4. Extract exceptions in full
Detail: workflow.md § 4. The control · the auditor's description verbatim · management's
response verbatim · any auditor comment · items tested and deviations ("2 of 25"). Never "minor"
or "not material".
5. Complementary user-entity controls — the point of the exercise
Detail: workflow.md § 5. Extract every CUEC: adopted only with cited evidence, not adopted
(an open risk the firm owns), otherwise NOT DETERMINED — owner confirms. State the count
prominently. A clean opinion with unadopted CUECs is not a clean result; say so in those words.
6. Public research — labelled, not exhaustive
Detail: workflow.md § 6. Adverse media, litigation, breaches, regulatory actions. Attribute
only with a corroborating identifier, else UNRESOLVED MATCH. Every adverse item keeps its
disposition. State what was searched and its limits; never "no adverse findings". No screening
connector → NEEDS FEED — screening provider, and the pass is labelled research, not a screen.
Rejected hits about private individuals are named by site and page type only: no titles, no URL
paths, captions as [another individual] v. <entity>.
7. Residual risks and open questions
Detail: workflow.md § 7. Residual risks: out-of-scope criteria, the period gap, carve-outs,
unadopted CUECs, untested remediations, each with its source. Open questions for the vendor are
specific and answerable.
8. Emit the memo, table, and draft handoff
Detail: workflow.md § 8. docx builds the memo and xlsx the workbook, per
vendor-outline.md. A TPRM connector is read for pre-fill only; the deliverable is a draft
export for the risk owner. Still no rating.
9. Final self-check, then count
- Save the artifact text, the chat reply (
reply.md), and the search log (searches.md: oneREQ | <source> | ok / failed / not attemptedline per request and oneHIT | <query> | <document> | used / rejected (Gn) / duplicate (Gn) / set asideline per document returned). - Run
python scripts/lint_deliverable.py <artifact> --reply reply.md --searches searches.md. Fix everyERROR, resolve everyCHECK, and re-run until it printsERROR: 0(house-rules.md§ 13). - Work through every item in
references/self-check.md, re-opening the page for every quote locator. - Build the footer counts from the G-list and D-list last, then recount.
Guardrails
Full list: workflow.md, Guardrails.
- No risk rating, score, tier, or approval decision.
- Never paraphrase the opinion; never describe out-of-scope criteria as passed or a carve-out as covered.
- Never mark a CUEC adopted without evidence; never call an exception minor or immaterial.
- Never present a Type I as operating effectiveness, or a DDQ or bridge letter as assured.
- Never write "no adverse findings"; never attribute research without identity resolution.
- Never fabricate. Never claim a save succeeded when it failed. Nothing is sent to the vendor or committed in a source system.
Output footer
Per house-rules.md § 9 and workflow.md, Output footer: destination · document type supplied ·
report type and period · review period not covered · criteria in and out of scope · opinion
quoted · exception count · CUEC count and how many confirmed adopted · subservice treatment ·
research coverage and limits · connectors · open items by marker type · determinations
outstanding · draft export, no source-system update · files and save result · template used.
Example
Input: <vendor> SOC 2 Type II, Security only, period ended 2026-06-30.
Output: Review period not covered: GAP - period mismatch: 92 calendar days not covered (G1).
Privacy: GAP - scope: Privacy criteria outside the report's scope, untested (G2).
CUECs: 8 specified; each NOT DETERMINED - owner confirms adoption (D1 to D8).
Question: Confirm whether Privacy will be in scope next period (G2).
Handoff: Draft TPRM export prepared; no source-system update performed.
Reference files
references/workflow.md— full step text, guardrails, source resolution, footer detail.references/self-check.md— the final self-check.references/house-rules.md— gates, identity resolution, markers, footers, the lint step.references/document-extraction.md— SOC 2 mandatory fields, CUECs, subservice treatment.references/reg-source-access.md— retrieving rules and guidance the review cites.references/vendor-outline.md— default memo, exceptions and CUEC tables.
04 同仓库更多 Skills
stakeholder-and-decision-map
Mines customer interactions to identify stakeholders, infer their likely roles and engagement, map the decision process, and highlight who or what may be missing. Use when asked to "map a deal's buying group", identify influential or missing stakeholders, "assess who has gone quiet", or "explain how the customer will decide". Do not use for phased engagement plans, contact sequences, choosing or drafting outreach to the single next contact, seller or team performance reviews, or contacting, scheduling, or changing records.
sales-progress-update
Creates or refreshes a sales progress update for a manager or team about work done, deal movement, pending outcomes, supported forecast position, and help needed. Use when asked to "create my weekly sales update", "refresh my sales progress deck", "report my forecast position", "where do I stand against my quarter forecast", or "catch my manager up on committed deals". Do NOT use for non-sales project updates, a since-date deal change digest, momentum or blocker analysis, meeting prep, or outreach drafting.
submission-assemble
Put the checked CSR or 510(k) sections together in template order with a reviewer-facing open-items register, as a draft package for human sign-off. Use when the user asks "assemble the CSR draft", "put the module together for review", "build the review package with the open items on top", "compile the 510(k) sections in order" or "package this up for the submission lead". Do NOT use for assembling an unchecked draft - use consistency-check instead. Do NOT use for loading protocol, SAP or TLF sources - use source-ingest instead. Do NOT use for compiling general documents or slide decks - use the built-in docx or pptx skill instead. Do NOT use for filing or submitting to a regulator - use the sponsor's validated gateway, operated by a human, instead. Guardrail: draft for human approval only (L1); status is draft_clean or draft_open_items, never submitted.
source-ingest
Pull every number, date and population definition out of a study's protocol, SAP, TLF tables, investigator brochure and prior approved text into one cited fact map, keyed per config/field-dictionary.json, before any CSR or 510(k) section is written. Use when the user asks "here's the locked TLF set and SAP, set up the CSR", "load the protocol and tables before we start drafting", "what figures do we have from the database lock?", "pull the disposition counts out of Table 14.1.1" or "ingest the IB for the 510(k)". Do NOT use for drafting or assembling submission sections - use section-draft or submission-assemble instead. Do NOT use for reconciling a patient's medications - use the discharge-care-transition plugin instead. Guardrail: reads and cites sources only; never estimates, rounds or invents a fact.
section-plan
Work out which sections a CSR or 510(k) requires, from the templates in config, check each one against the cited fact map, and name what is missing before a word is drafted. Use when the user asks "what do we still need before we can draft the CSR?", "which sections are ready to start?", "what's blocking the performance data section?", "do we have everything for the synopsis?" or "map our tables to the E3 structure". Do NOT use for writing section language - use section-draft instead. Do NOT use for cross-checking a finished draft - use consistency-check instead. Do NOT use for outlining general Word documents or business reports - use the built-in docx skill instead. Only structures with a template in config are supported. Guardrail: plans only; never marks a section ready on a missing fact and never invents a structure.
section-draft
Write or revise the language for one planned CSR or 510(k) section - synopsis, efficacy, safety, discussion, device description - using only figures already in the cited fact map, each with its TLF or SAP citation. Use when the user asks "draft the Synopsis from our locked tables", "write up safety from Table 14.3.1", "give me a first pass at the discussion", "draft the device description for the 510(k)" or "tighten the wording of the Discussion section". Do NOT use for supplying a number not already in source_facts - use source-ingest instead. Do NOT use for verifying a draft's figures - use consistency-check instead. Do NOT use for appeal letters, clinical notes or discharge summaries - use the matching HLS plugin instead. Guardrail: drafts for human approval only (L1); never asserts an unsourced number or harmonises two figures.