From unifylabs-workflow
Interactive compliance profile selection + gap analysis. Walks user through industry, geography, data classes, and customer geography to recommend a compliance profile (baseline-pipeda, healthcare-phipa, financial-canada, general-soc2). Uses context7 + WebSearch to ground on current regulations (compliance evolves; cannot rely on training data alone). Gap-analyzes existing docs/compliance/ against the recommended profile and writes docs/compliance/research-notes/<date>-<topic>.md. Use when the user says "/compliance-research", "what compliance profile should I use", or starts a new regulated project.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unifylabs-workflow:compliance-researchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Walk the user through a structured intake, recommend one or more
Walk the user through a structured intake, recommend one or more
compliance profiles (composition allowed), ground the recommendation in
current regulatory text via context7 + WebSearch, gap-analyze
existing project docs, and write a research note for the rationale.
/compliance-research.Use AskUserQuestion:
healthcare, financial services, B2B SaaS, consumer SaaS (+ user can pick Other for free-text).If the user picks Other, capture the free text.
AskUserQuestion:
Canada-only, US, EU, Global (+ Other).AskUserQuestion with multiSelect: true:
PHI (personal health info), PII (general),
financial (account / transaction), payment cards (PCI),
biometric, none of these (+ Other).AskUserQuestion:
no, yes (please specify) — if yes, the user provides
text via Other.Apply this deterministic mapping (then narrate the reasoning to the user):
| Industry | Geo | Data classes | Recommendation |
|---|---|---|---|
| healthcare | Canada-only / Global incl. Canada | PHI present | baseline-pipeda + healthcare-phipa |
| healthcare | Canada-only / Global | PHI absent | baseline-pipeda (project will handle PII but not PHI yet) |
| financial services | Canada-only / Global incl. Canada | financial present | baseline-pipeda + financial-canada |
| B2B SaaS | any | any | baseline-pipeda (if Canada) + general-soc2 |
| consumer SaaS | Canada-only | PII present | baseline-pipeda |
| anything | US-only | (any) | out of scope for v2 — recommend the user defer or contribute a US-focused profile |
| anything | EU | (any) | out of scope for v2 — recommend the user defer or contribute a GDPR profile |
| anything | (any) | payment cards (PCI) present | out of scope for v2 — recommend PCI-DSS-focused work outside the kit |
If a specific regulator was named in Step 4:
healthcare-phipa.baseline-pipeda is in the set.financial-canada.general-soc2.For ambiguous combinations, present the strongest match and explain what falls outside the v2 profile set.
If docs/compliance/ exists in the current project:
If docs/compliance/ does not exist, skip this step and note that
the project starts fresh.
For each regulator implicated by the recommendation, attempt a lookup in this order:
mcp__context7__resolve-library-id with the regulator term.mcp__context7__query-docs for the
relevant topic.sources_fetched: false in the
research-note frontmatter and proceed with a recommendation grounded
in the profile READMEs only.For each fetch, capture:
Write to docs/compliance/research-notes/<YYYY-MM-DD>-<topic-slug>.md
(create the directory if it doesn't exist). Use this structure:
---
date: <YYYY-MM-DD>
topic: <slug>
industry: <answer>
geography: <answer>
data_classes: [<list>]
recommended_profile: <profile or composition>
sources_fetched: <true|false>
sources:
- url: <url>
title: <title>
accessed: <YYYY-MM-DD>
- ...
---
# Compliance recommendation — <topic>
## Inputs
- Industry: <answer>
- Geography: <answer>
- Data classes: <list>
- Specific regulator(s) mentioned: <answer or "none">
## Recommendation
<one-paragraph plain-language summary of the recommended profile or
composition, naming each profile and what it covers>
## Reasoning
<3–6 bullet points connecting the inputs to the recommended profiles>
## Gap analysis
<if docs/compliance/ existed: list missing files and likely-stale
files; otherwise: "starting fresh — no existing docs/compliance/
directory to compare against">
## Sources
<bulleted list of fetched URLs with access dates; if sources_fetched
is false, note "regulatory content not fetched this session — verify
profile claims against current regulator pages before relying">
## Next steps
1. Install the recommended profile(s) via `init-project.sh
--compliance=<profile>` (phase-4 init wiring; verify status in
templates/README.md).
2. Counsel review before any externally-facing artifact (privacy
policy, breach notification, vendor DPAs) is finalized.
3. <profile-specific next step — e.g., for healthcare-phipa: identify
whether the project is a HIC or Agent of a HIC>.
## Disclaimer
This is a starting-point recommendation, not legal advice. The profile
content the kit ships is scaffolding, not a substitute for qualified
counsel review.
Tell the user the file path that was written.
AskUserQuestion unavailable → fall back to plain-language
prompts, one question per turn; capture answers via the user's
free-text response.context7 and WebSearch both unavailable → still produce a
recommendation grounded in the profile READMEs; set
sources_fetched: false in the frontmatter; flag the limitation in
the "Sources" section.~/compliance-research-notes/ as
a scratch file, or (b) abort. Default behaviour is to ask, not
silently move.npx claudepluginhub unifylabs-dev/unify-kit --plugin unifylabs-workflowGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.