secure
SkillDev toolsRun the enabled compliance checklists (any of HIPAA / HITRUST / ISO 27001 / SOC 2) against the diff, separating code-verifiable findings from organizational controls. Always run before committing a sensitive change.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the secure skill
What this skill tells your AI
The instructions your AI receives, as published by nilswidal/loobster in .agents/skills/secure/SKILL.md and read by ahel’s review.
Run security/compliance checks against all uncommitted changes, for the frameworks you have enabled (any of: HIPAA, HITRUST, ISO 27001, SOC 2 — see compliance/frameworks.md). Healthcare frameworks are one aspect — not all of them have to be on.
Independent assessment — never self-verify. Run this in a separate verifier subagent (
Agent) that did not produce the code. Per the token-discipline note below, delegate each enabled framework's checklist to its own judge subagent; the implementing agent never grades its own diff. (See the "Never self-verify" rule inrun.md.) Apply theverifymodel preference from.claude/loobster.jsonwhen spawning these judges (see run.md "Preferred subagents"); no config → inherit the session model.
What this does
- Gathers all uncommitted changes (staged + unstaged)
- Runs each enabled security framework checklist against the diff
- Produces a pass/warn/fail report for code-verifiable items
- Surfaces organizational
[org]items separately as "NOT VERIFIED — requires manual/periodic review" - Optionally posts findings to the relevant issue tracker
Steps
- Collect the diff:
git diffgit diff --cachedgit diff HEAD
- If an issue ID is provided or can be inferred from the branch name, read it for context.
- Determine which frameworks are enabled. Read
.claude/loobster-frameworks.jsonin the user's workspace, e.g.{ "frameworks": ["soc2", "iso27001"] }. If it is absent, default to all four (hipaa,hitrust,iso27001,soc2) — nothing is silently skipped. Seecompliance/frameworks.mdfor keys and profiles. Then read the checklist for each enabled framework:compliance/hipaa-checklist.mdcompliance/hitrust-checklist.mdcompliance/iso27001-checklist.mdcompliance/soc2-checklist.mdIf a workspace override exists at.claude/compliance/<framework>-checklist.mdin the user's repo, prefer that. If neither exists, fall back to the built-in checks below. Only run frameworks that are enabled.
- Run each security checklist against the diff.
- Token discipline (see
.agents/skills/token-discipline/SKILL.md): when the diff is large or several frameworks are enabled, delegate each framework's checklist evaluation to its ownAgentsubagent and collect only the per-item PASS/WARN/FAIL verdicts. The main thread assembles the report from those verdicts. Never let a subagent's raw file reads back into the main context — only the verdicts.
- Token discipline (see
- For items marked
[org]: Do NOT auto-pass these. Instead, check if the diff touches files relevant to that control (e.g., CDK/infrastructure changes for physical safeguards, CI/CD changes for change management). If the diff is relevant, evaluate what you can. If not, mark asSKIPPEDwith a note that it requires periodic organizational review. - For each code-verifiable item, assign a status:
- PASS — requirement met
- WARN — potential concern, needs human review
- FAIL — clear violation found
- SKIPPED — cannot be verified from code diff (organizational/physical control)
- Present the report using the output template below.
- If Linear MCP tools are available and an issue was identified, post the security report as a comment.
- If Claude Code Tasks track this work (
TaskList), record the result: any task with an unresolved FAIL staysin_progress(a FAIL blocks completion); mark taskscompletedonly when no FAIL remains. This keeps/resumeand the Phase 6 convergence loop accurate across sessions.
Built-in HIPAA Checks (fallback)
- No PHI (names, DOB, SSN, emails, phone numbers) in logs, comments, error messages, or string literals
- No PHI in shared signal files (
signals/*.md) — signals are committed/shared and must be non-PHI summaries; if the diff touchessignals/, runbin/signals-build.py signals --strictand treat any PHI-shaped or malformed signal as a FAIL - No third-party tracking/ads/analytics scripts on PHI pages — if the diff adds frontend code that loads a third-party tracker (Google Ads/AdSense, GTM/GA/gtag, Meta Pixel, Hotjar, etc.), run
bin/scan-trackers.py <frontend dir or changed files>. On a PHI-handling app, a tracker on any page that can see PHI is a FAIL unless a signed BAA exists with the vendor and PHI is provably excluded from what is transmitted (HHS OCR online-tracking-technologies guidance — basis of the Meta Pixel / Google Analytics healthcare settlements) - Data at rest encryption (no plaintext storage of sensitive fields)
- Data in transit (HTTPS/TLS for all external calls)
- Access control (authentication checks, proper authorization)
- Audit trail (data access/modification is logged)
- Minimum necessary (only required data fields are queried/returned)
- Soft delete only (no hard deletes of patient/health data)
Built-in SOC2 Checks (fallback)
- Input validation on all API boundaries
- Error handling does not leak internal details to clients
- Dependencies are pinned (no floating versions)
- No secrets or credentials in code
- Change management (PR review, automated deployment)
- Third-party scripts & consent — new third-party tracking/ads/analytics scripts (see
bin/scan-trackers.py) require cookie consent + privacy-policy disclosure and a data-processing agreement; flag undisclosed trackers as WARN
Built-in ISO 27001 Checks (fallback)
- Secure development (A.8.25–8.28): input validation at trust boundaries, no injection vectors, output encoding
- Cryptography (A.8.24): TLS in transit, sensitive data encrypted at rest, strong algorithms, no hardcoded keys
- Access control & authentication (A.8.2–8.5): server-side authz, correct session/token handling, least privilege
- Logging & masking (A.8.15–8.16, A.8.11–8.12): security actions logged; secrets/sensitive data masked in logs and errors
- Vulnerability & config management (A.8.8–8.9): pinned dependencies, no committed secrets
Built-in HITRUST Checks (fallback)
- Session management (proper token handling, expiry)
- Credential handling (no plaintext passwords, proper hashing)
- Cross-tenant data access prevention
- Encryption (strong algorithms, no weak crypto)
Output template
## Security Review
Summary: <1-2 sentences>
Frameworks run: <list the enabled frameworks, e.g. SOC2, ISO 27001>
<!-- One section per ENABLED framework (omit disabled ones) -->
### <FRAMEWORK>
| Status | Check | Detail |
|--------|-------|--------|
| PASS/WARN/FAIL | <check name> | <explanation> |
### Organizational Controls (not verifiable from code)
| Framework | Control | Last Verified | Action Required |
|-----------|---------|---------------|-----------------|
| HIPAA §164.310 | Physical safeguards | See periodic audit | Quarterly review |
| SOC2 CC1.2 | Board oversight | See periodic audit | Quarterly review |
| ... | ... | ... | ... |
Items skipped: <count> (see periodic audit schedule in `compliance/org-controls-audit.md`)
Blocking issues: <count>
Notes
- FAIL items should block any commit/push — flag clearly.
- WARN items need human judgment — present but don't block.
- SKIPPED items are organizational controls — they do NOT block but must be tracked via periodic audit.
- This command can be run standalone or as part of the full
/runflow. - If this diff touches infrastructure (CDK, K8s, CI/CD), evaluate relevant
[org]items against the infrastructure changes rather than skipping them.
Signals
- GitHub stars
- 36
- Forks
- 2
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
secure- Source
- github.com/nilswidal/loobster