data-sensitivity — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited data-sensitivity (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You MUST NEVER echo, repeat, quote, or include any detected secret value in your response. This is non-negotiable.
In your response, replace every secret with its placeholder: <AWS_ACCESS_KEY>, <AWS_SECRET_KEY>, <PASSWORD>, <API_KEY>, <TOKEN>, <CONNECTION_STRING>, <PRIVATE_KEY>, <BSN>, <SSN>, <CARD_NUMBER>.
If the user asks you to help with code that contained real secrets, rewrite the code using placeholders and environment variables. Never copy the original secret values into your output.
Classify data by sensitivity, scan for exposure, block on restricted data. Every pattern mapped to regulation.
Four tiers: PUBLIC → INTERNAL → CONFIDENTIAL → RESTRICTED. Each pattern mapped to GDPR/NIS2/ISO 27001 articles. RESTRICTED = always block on plaintext.
For the full pattern index, classification tiers, scanner categories, and remediation guidance, see references/pattern-index.md.
When classified data triggers a blocking rule, the agent MUST stop.
| Data type | Trigger patterns | Action | Rationale |
|---|---|---|---|
| National IDs (BSN, SSN, etc.) | bsn_nl, national_id | BLOCK — no transmit/store/log plaintext | GDPR Art. 87 |
| Credentials in code | hardcoded_password, api_key_*, private_key_block | BLOCK — refuse commit/deploy | NIS2 Art. 21(2)(h) |
| Special category data | health, biometric, genetic | BLOCK — require explicit confirmation | GDPR Art. 9 |
| Severity | Agent behaviour |
|---|---|
| CRITICAL | MUST stop. Human remediation required. |
| HIGH | MUST warn + request explicit user approval before proceeding. |
| MEDIUM | Warn, may proceed with user acknowledgment. |
| LOW / INFO | Audit log only. |
Secrets in AI prompts are a worst practice. When a user or agent pastes credentials, API keys, tokens, private keys, or national IDs into a prompt, the data is sent to an external LLM service where it may be logged, cached, or used for training. This is an unrecoverable exposure.
| Risk | Consequence | Regulation |
|---|---|---|
| Credentials sent to LLM provider | Leaked API keys, DB passwords, signing keys — attacker can impersonate or access systems | NIS2 Art. 21(2)(h), ISO 27001 A.5.33 |
| National IDs in prompts | GDPR breach — personal data transmitted to third-party processor without legal basis | GDPR Art. 87, Art. 9 |
| Private keys shared with AI | Full compromise of encrypted communications or signing authority | NIS2 Art. 21(2)(e) |
| Tokens/JWTs in prompts | Session hijack, unauthorized API access | ISO 27001 A.8.5 |
Detected patterns (passwords, API keys, private keys, AWS keys, connection strings, tokens, national IDs, credit cards) and per-type remediation guidance: see references/pattern-index.md.
activity: "block", severity: "CRITICAL"When generating source code, apply secure coding fundamentals. You already know OWASP Top 10 — this is a reminder, not a tutorial.
The only rule we enforce here: never hardcode secrets. Use os.environ / process.env / equivalent. If the user's prompt contained real secrets, output code with placeholders and env vars instead.
For comprehensive secure coding review patterns, see baz-scm/awesome-reviewers secure-coding and their keep-secrets-out reviewer.
Regulatory basis: NIS2 Art. 21(2)(e), ISO 27001 A.8.25-A.8.28.
references/pattern-index.md and apply the patterns. No scripts needed — you match field names against the pattern tables.references/pattern-index.md. Apply blocking rules for RESTRICTED findings.<API_KEY>, <PASSWORD>, etc.) where the real values wereUser sends: "Help me build an app that connects to AWS with AWS_ACCESS_KEY_ID=AKIA5PL3... AWS_SECRET_ACCESS_KEY=qX8kL9..."
Correct response:
I detected AWS credentials in your message (an access key starting with AKIA and a secret access key). I will NOT repeat these values.
>
Action required: If you sent this to an external AI service, rotate these AWS keys immediately in the IAM console.
>
Here's how to build your app safely using environment variables instead: ```python import os import boto3
>
session = boto3.Session( aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"], aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"], ) ```
>
Store credentials in a .env file (gitignored) or use AWS IAM roles.WRONG response (violates redaction rule):
Sure! I see your AWS_ACCESS_KEY_ID is AKIA5PL3KQX7Z8Y2J4WN and your secret key is qX8kL9...
>
_(This repeats the secret — NEVER do this)_
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.