Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Database security (encryption, access control, injection prevention), data governance (lineage, quality, MDM), and compliance frameworks (GDPR, CCPA, HIPAA)
.claude/skills/nwave-ai-nw-security-and-governance/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 72% | 0% |
| case-07 | ✓→✓ | = Same ✓ | 104% | 0% |
| case-08 | ✓→✓ | = Same ✓ | 66% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 56% | 0% |
Layered security, each layer provides independent protection:
Encrypts DB files on disk without application changes. Encrypts data pages before writing, decrypts on read into memory. AES 128/256-bit symmetric encryption. Transparent to applications.
sql-- SQL Server TDE (key hierarchy: Service Master Key -> DB Master Key -> Certificate -> DEK) CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE TDE_Cert; ALTER DATABASE [YourDB] SET ENCRYPTION ON; -- PostgreSQL: pgcrypto for column-level, full TDE in v17+ | Oracle: ALTER SYSTEM SET ENCRYPTION KEY
sslmode=require in PostgreSQL)Assign permissions to roles, roles to users. Standard in all major DBs.
sql-- PostgreSQL RBAC: create roles with specific grants, assign to users CREATE ROLE app_readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO app_readonly; CREATE ROLE app_readwrite; GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO app_readwrite; GRANT app_readonly TO reporting_user; GRANT app_readwrite TO application_user;
Access decisions based on attributes of user, resource, environment. More flexible than RBAC for complex scenarios (multi-tenant, data classification).
python# VULNERABLE - string concatenation (SQL injection risk) query = f"SELECT * FROM users WHERE name = '{user_input}'" # SAFE - parameterized (all languages: Python %s, Java ?, C# @param, Node.js $1) cursor.execute("SELECT * FROM users WHERE id = %s AND status = %s", (user_id, 'active'))
Input validation: whitelist allowed chars/formats | Stored procedures: reduce direct SQL exposure | Least privilege: no DDL for app accounts | WAF rules | Never expose DB error messages to end users
Track data from source through transformations to consumption:
Purpose: Regulatory compliance (GDPR Article 30) | Impact analysis (downstream schema change effects) | Root cause analysis (bad data origin) | Audit trails
| Dimension | Definition | Example Check | |-----------|-----------|---------------| | Accuracy | Correctly represents real-world entities | Email format validation | | Completeness | Required fields populated | NOT NULL checks, completeness % | | Consistency | Same data across systems agrees | Cross-system reconciliation | | Timeliness | Current and available when needed | Freshness SLAs | | Uniqueness | No unintended duplicates | Duplicate detection on business keys | | Validity | Conforms to defined rules/formats | Range checks, enum validation |
Establish single source of truth for core entities (customer, product, location) | Define golden record resolution rules | Implement data stewardship roles | Use MDM platform or reference data services
Right to know (disclose collected data) | Right to delete | Right to opt-out of data sale | Non-discrimination regardless of privacy choices
PHI encryption at rest and in transit | Role-based access with minimum necessary standard | Audit all PHI access | Business associate agreements for third-party processors
3 copies of data | 2 different storage types | 1 copy offsite
Test recovery regularly (monthly minimum) | Document RTO and RPO | Encrypt backup files | Store encryption keys separately from backups
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | pass→pass | 6,192 | 5,468 | -12% | 1 | 1 | 0% | 1,268 | 2,587 | +104% | 0 | 0 | — |
case-01 | fail→fail | 23,220 | 21,565 | -7% | 1 | 1 | 0% | 4,388 | 5,702 | +30% | 0 | 0 | — |
case-08 | pass→pass | 8,999 | 7,533 | -16% | 1 | 1 | 0% | 1,729 | 2,864 | +66% | 0 | 0 | — |
case-02 | pass→pass | 12,549 | 11,306 | -10% | 1 | 1 | 0% | 2,523 | 3,927 | +56% | 0 | 0 | — |
case-03 | pass→pass | 13,734 | 13,435 | -2% | 1 | 1 | 0% | 2,386 | 3,853 | +61% | 0 | 0 | — |
case-04 | pass→pass | 13,852 | 11,069 | -20% | 1 | 1 | 0% | 2,581 | 3,530 | +37% | 0 | 0 | — |
case-05 | fail→pass | 8,813 | 5,927 | -33% | 1 | 1 | 0% | 1,822 | 2,718 | +49% | 0 | 0 | — |
case-06 | pass→pass | 11,472 | 7,719 | -33% | 1 | 1 | 0% | 2,394 | 3,214 | +34% | 0 | 0 | — |
case-09 | pass→pass | 10,085 | 6,516 | -35% | 1 | 1 | 0% | 2,128 | 2,875 | +35% | 0 | 0 | — |
case-10 | pass→pass | 5,628 | 3,191 | -43% | 1 | 1 | 0% | 1,060 | 2,232 | +111% | 0 | 0 | — |
case-11 | fail→pass | 12,918 | 13,333 | +3% | 1 | 1 | 0% | 2,386 | 4,112 | +72% | 0 | 0 | — |
case-12 | pass→pass | 2,483 | 2,702 | +9% | 1 | 1 | 0% | 471 | 1,975 | +319% | 0 | 0 | — |
case-19 | pass→pass | 15,140 | 13,820 | -9% | 1 | 1 | 0% | 2,455 | 3,897 | +59% | 0 | 0 | — |
case-13 | pass→pass | 10,035 | 7,919 | -21% | 1 | 1 | 0% | 2,058 | 3,001 | +46% | 0 | 0 | — |
case-14 | pass→pass | 15,873 | 14,183 | -11% | 1 | 1 | 0% | 3,190 | 4,399 | +38% | 0 | 0 | — |
case-15 | pass→pass | 10,983 | 13,439 | +22% | 1 | 1 | 0% | 2,125 | 4,226 | +99% | 0 | 0 | — |
case-16 | pass→pass | 12,444 | 12,458 | +0% | 1 | 1 | 0% | 2,470 | 4,047 | +64% | 0 | 0 | — |
case-17 | pass→pass | 13,340 | 16,481 | +24% | 1 | 1 | 0% | 2,365 | 4,492 | +90% | 0 | 0 | — |
case-18 | pass→pass | 14,120 | 12,427 | -12% | 1 | 1 | 0% | 2,635 | 3,846 | +46% | 0 | 0 | — |
case-20 | pass→pass | 9,014 | 9,809 | +9% | 1 | 1 | 0% | 1,817 | 3,533 | +94% | 0 | 0 | — |
case-21 | fail→fail | 6,537 | 5,592 | -14% | 1 | 1 | 0% | 1,269 | 2,757 | +117% | 0 | 0 | — |
case-22 | pass→pass | 2,207 | 2,810 | +27% | 1 | 1 | 0% | 468 | 2,056 | +339% | 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 +9 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.