supabase
Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
incident-management
ACTIVATE when a security incident, data breach, outage, or suspicious event is reported, discussed, or detected. Guides structured incident documentation through the full lifecycle: detection → triage → response → notification → recovery → lessons learned. Ensures NIS2 24/72h/30d notification dea...
Full skill instructions
Structure incidents, don't just react to them. Every incident gets a record. Every record follows the lifecycle. Every deadline gets tracked.
One JSON object per incident, stored in .compliance/incidents/INC-YYYY-NNN.json. The agent creates this on first detection and updates it through the lifecycle.
{
"incident_id": "INC-2026-001",
"status": "detected | triaging | responding | notified | recovering | closed",
"severity": "P1-critical | P2-high | P3-medium | P4-low",
"detected_at": "ISO 8601",
"detected_by": "agent | user | monitoring | third-party",
"summary": "One-line description of what happened",
"affected_assets": ["names from profile.critical_assets if applicable"],
"category": "data-breach | ransomware | unauthorised-access | dos | phishing | misconfiguration | supply-chain | other",
"timeline": [
{ "timestamp": "ISO 8601", "action": "what happened or was done", "actor": "who" }
]
}
| Field | When | Content |
|---|---|---|
impact | Triage | { "confidentiality": bool, "integrity": bool, "availability": bool, "data_subjects_affected": number, "description": "..." } |
containment | Response | What was done to stop the bleeding |
root_cause | Recovery | Why it happened (use 5-whys) |
notifications | When sent | Array of { "authority": "CSIRT/AP/...", "deadline": "ISO 8601", "sent_at": "ISO 8601", "reference": "..." } |
remediation | Recovery | Actions taken to fix + prevent recurrence |
lessons_learned | Close | What changed as a result |
closed_at | Close | ISO 8601 |
When an incident is reported or detected:
| Severity | Criteria | Response time |
|---|---|---|
| P1 | Critical asset CIA 5 affected, or data breach with special category data, or full service outage | Immediate — all hands |
| P2 | Critical asset affected but contained, or personal data exposed, or partial outage | Within 1 hour |
| P3 | Non-critical system affected, no data exposure, limited impact | Within 4 hours |
| P4 | Near-miss, policy violation, no actual impact | Next business day |
Determine impact. Key questions:
profile.critical_assets)NIS2/Cbw deadlines (for essential and important entities):
| Step | Deadline | Content | To whom |
|---|---|---|---|
| Early warning | 24h after detection | Suspected significant incident + cross-border indicator + suspected unlawful/malicious | CSIRT |
| Incident notification | 72h after detection | Severity, impact assessment, indicators of compromise, measures taken | CSIRT |
| Final report | 1 month after notification | Root cause, mitigation applied, cross-border impact | CSIRT |
GDPR/AVG (if personal data breach):
| Step | Deadline | To whom |
|---|---|---|
| Authority notification | 72h after becoming aware | Autoriteit Persoonsgegevens (NL) / relevant DPA |
| Data subject notification | Without undue delay (if high risk to rights) | Affected individuals |
Both can apply simultaneously. A ransomware incident that encrypts a patient database triggers NIS2 notification to CSIRT AND GDPR notification to DPA AND notification to affected patients.
Read profile.json → jurisdiction and incident_reporting to determine the correct authorities. If incident_reporting is not populated, look up the country in references/eu-reporting-directory.md.
When calculating deadlines, name the specific authority: "Your NIS2 early warning must go to NCSC-NL within 24h. Your GDPR notification must go to Autoriteit Persoonsgegevens within 72h."
Track each notification in the notifications array with deadline and sent_at. The agent flags overdue notifications as CRITICAL.
When an incident requires notification, generate clickable mailto: links with pre-filled subject and body so the user (or CISO) can send with one click. The agent fills in the details from the incident record.
Template — CISO escalation:
mailto:{ciso_email}?subject=P{severity}%20Security%20Incident%20{incident_id}&body=Incident%3A%20{incident_id}%0ASeverity%3A%20{severity}%0ADetected%3A%20{detected_at}%0ASummary%3A%20{summary}%0AAffected%20assets%3A%20{affected_assets}%0A%0ANotification%20deadlines%3A%0A-%20CSIRT%3A%20{csirt_deadline}%0A-%20DPA%3A%20{dpa_deadline}
Template — NIS2 early warning to CSIRT:
mailto:{csirt_email}?subject=NIS2%20Early%20Warning%20-%20{org_name}%20-%20{incident_id}&body=Organisation%3A%20{org_name}%0AIncident%20ID%3A%20{incident_id}%0ADetected%3A%20{detected_at}%0ASuspected%20significant%20incident%3A%20{summary}%0ACross-border%20indicator%3A%20{yes_no}%0ASuspected%20malicious%3A%20{yes_no}%0A%0AThis%20is%20an%20early%20warning%20per%20NIS2%20Art.%2023(4)(a).%20Full%20notification%20follows%20within%2072h.
Agent generates these by:
incident_reporting from profile to get authority namesIf the authority uses a web portal instead of email (most CSIRTs do), provide the portal URL with the pre-filled text as a copyable block instead.
An incident is "significant" if it:
When in doubt, notify. The penalty for late notification exceeds the cost of over-reporting.
.compliance/incidents/. Don't wait for complete information.{
"incident_id": "INC-2026-003",
"status": "notified",
"severity": "P1-critical",
"detected_at": "2026-03-16T02:15:00Z",
"detected_by": "monitoring",
"summary": "Ransomware encryption detected on file server containing client data",
"affected_assets": ["Azure tenant met klantomgevingen"],
"category": "ransomware",
"impact": {
"confidentiality": false,
"integrity": true,
"availability": true,
"data_subjects_affected": 200,
"description": "Client data encrypted, services unavailable"
},
"timeline": [
{ "timestamp": "2026-03-16T02:15:00Z", "action": "EDR alert: ransomware detected on FS01", "actor": "CrowdStrike Falcon" },
{ "timestamp": "2026-03-16T02:20:00Z", "action": "Server isolated from network", "actor": "SOC analyst" },
{ "timestamp": "2026-03-16T02:45:00Z", "action": "IR retainer activated, case INC-EYE-4521", "actor": "Teamlead Cloud" },
{ "timestamp": "2026-03-16T08:00:00Z", "action": "Early warning submitted to NCSC", "actor": "Compliance officer" }
],
"notifications": [
{ "authority": "NCSC/CSIRT", "deadline": "2026-03-17T02:15:00Z", "sent_at": "2026-03-16T08:00:00Z", "reference": "NCSC-2026-1234" }
],
"containment": "Server isolated. Backup integrity verified. Clean restore initiated from immutable backup."
}
Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
Comprehensive guides and best practices for Neon Serverless Postgres, covering setup, connection methods, authentication, and platform APIs.
Guide for setting up and using Firebase Authentication. Use this skill when the user's app requires user sign-in, user management, or secure data access using auth rules.
A skill to evaluate how secure Firestore security rules are. Use this when Firestore security rules are updated to ensure that the generated rules are extremely secure and robust.
Official skill for integrating Firebase AI Logic (Gemini API) into web applications. Covers setup, multimodal inference, structured output, and security.
Complete Better Auth server and client setup with database adapters, session management, plugins, and security configuration.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Complete Cloudflare platform integration with decision trees for compute, storage, AI, networking, security, and infrastructure-as-code.
Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.
Send, read, and manage Gmail messages, drafts, labels, and account settings.
Comprehensive website auditing across 230+ rules in 21 categories including SEO, performance, security, and accessibility.
Shared authentication, CLI syntax, and output formatting patterns for gws Google Workspace commands.
Discover your celebrity doppelgänger with StarByFace!
GeoSpy: Pricing, Features, FAQs, and Alternatives for AI Teams
Detect AI-generated voices to protect against audio fraud.
Ensure Your Content's Originality with AI Plagiarism Checker
Upscale images by 400% without quality loss
Protect your social media from copyright disputes
Accurately Detect AI-Generated Content with TheChecker.AI
Chrome extension that detects and flags AI-generated content