secure-access-control — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited secure-access-control (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.
access.authz / access.privileged / access.authn) — authoring-time guidanceScope: this skill helps you implement the technical access-control controls in code. It does not make a system "compliant" — certification is the auditor's call. It makes the code satisfy the control and produces machine-detectable evidence.
>
Framework-neutral by design. Code emits stable Throughproof control keys (access.authz,access.privileged), not framework ids. The crosswalk resolves them to SOC 2 (CC6.1–CC6.3), ISO 27001 (A.8.2/A.8.3/A.8.5), PCI-DSS v4 (Req 7.2/7.2.5/8.3), and HIPAA (164.312(a)(1)/164.308(a)(4)/164.312(d)) at once.
Apply this skill whenever the code under edit enforces or grants access:
ownership, or scope (require_role, policy check, if not user.can(...)).
user's data, config or feature-flag overrides, destructive admin jobs.
If the code is an ordinary, already-authorized read with no access decision, do not add an access event — over-logging is itself a finding.
allow unless a checkpassed; never fall through to permit on an unknown role/branch.
detection signal for privilege-escalation attempts.
# authorization decision — sensitive: access.authz
def open_invoice(actor, invoice_id, correlation_id):
inv = repo.get_invoice(invoice_id)
if not actor.can_view(inv): # deny-by-default
logger.info("audit", audit=True, control="access.authz", action="invoice.view",
actor=actor.id, target={"type": "invoice", "id": invoice_id},
outcome="denied", reason="not_owner",
ts=now(), correlation_id=correlation_id)
raise Forbidden()
logger.info("audit", audit=True, control="access.authz", action="invoice.view",
actor=actor.id, target={"type": "invoice", "id": invoice_id},
outcome="allowed", ts=now(), correlation_id=correlation_id)
return invaccess.privilegedGrant/revoke access, impersonation, and admin overrides emit an audit event with control="access.privileged", on success and failure, using ids (never PII) for actor/target. Same canonical shape as access.authz; only the control key and action differ.
access.authn (static control)sha1, or plaintext. Never compare passwords with == — use the library's constant-time verify.
invalidate on logout/password-change.
compliant-logging hygiene: never log passwords, tokens,or session ids.
# secure authentication — access.authn
import bcrypt
def set_password(user, raw):
user.pw_hash = bcrypt.hashpw(raw.encode(), bcrypt.gensalt()) # ✅ salted, strong KDF
def verify_password(user, raw):
return bcrypt.checkpw(raw.encode(), user.pw_hash) # ✅ constant-time verifyif user.password == submitted: # ❌ plaintext compare
stored = hashlib.md5(pw.encode()) # ❌ weak, unsalted hash
def admin(): do_admin() # ❌ no authorization check (implicit allow)
# (grant role with no audit event) # ❌ missing detection signal on a privileged opaccess.authz / access.privileged audit events on allow and deny / success and failure.The stable control + action + outcome shape lets a deterministic verifier trace each access decision to the control it satisfies — and access.authn insecurities (md5/sha1, plaintext compare) are statically detectable — so evidence maps to SOC 2 / ISO 27001 / PCI-DSS / HIPAA without LLM guesswork.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.