agentsclimarketplace

Security maturity assessment

Skill event4u-app/agent-config/src/skills/security-maturity-assessment

Universal AI Agent OS — audited skills, governance rules, replayable state. One contract, every host agent.

Install
npx -y skills add event4u-app/agent-config --skill security-maturity-assessment

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when the user wants a security-maturity scorecard / posture assessment of a module — category ratings with evidence, not a vulnerability hunt. Also on 'wie sicher ist dieses Modul aufgestellt?'

SKILL.md

5.7 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

security-maturity-assessment

Rate how mature a module's security posture is — category by category, every rating backed by file:line evidence — instead of hunting individual vulnerabilities. The output is a scorecard a maintainer can re-run and diff, not a finding list.

When to use

  • "How mature / well-set-up is this module's security?" — posture, not holes
  • Baseline before a hardening effort, or re-assessment after one
  • A stakeholder needs a defensible rating per category with cited evidence

Do NOT use when:

The nine categories

#CategoryCritical?What to inspect
1Input validationYesRequest-boundary validation primitives on every entry point; no inline ad-hoc checks
2AuthorizationYesPer-object ownership/tenant checks, policy coverage, field-level access
3Secrets handlingYesNo hardcoded creds; env/vault usage; secrets absent from logs and VCS
4Error handlingNoNo swallowed exceptions; no stack traces / internals leaked to clients
5Logging & auditNoSecurity events (auth, permission denials, admin actions) logged; no PII in logs
6Dependency hygieneNoLockfiles present; known-CVE scan wired; update cadence visible
7Data boundariesNoSerializers/resources whitelist fields; exports/queues don't leak internals
8Tenant isolationYes (multi-tenant only; else N/A)Tenant scoping on queries, jobs, caches; cross-tenant negative tests
9Security test coverageNoNegative tests exist (401/403/404 paths, abuse cases), not only happy-path

Rating rubric

RatingMeaning
MissingNo control exists for the category
WeakAd-hoc, inconsistent — some paths covered, most not
ModerateControl present and usual, with named gaps
SatisfactoryConsistent across the surface; minor gaps only
StrongConsistent AND enforced (CI gate, test, linter) or negatively tested

Procedure

  1. Scope — name the module/paths under assessment; list entry points (routes, jobs, commands, webhooks). A scorecard without a stated scope is not reproducible.
  2. Assess each category — inspect the code the category names. Every rating cites evidence:
    • Positive evidence: file:line of the control (app/Http/Requests/…:12, src/guards/auth.guard.ts:12).
    • Absence evidence: the searches run that came back empty (name the grep patterns) — "not found" beats "probably missing".
    • Multi-tenant N/A: single-tenant systems rate category 8 N/A; it drops out of the roll-up.
  3. Roll up deterministically — the overall rating is computed, not vibed:
    • overall = min( median(all rated categories), one step above the lowest critical-category rating )
    • Consequences: any critical category Missing caps overall at Weak; any critical Weak caps overall at Moderate. Non-critical categories move the median but can never lift the cap.
  4. Recommend — max 3 next steps, ordered by which would raise the overall rating (i.e. fix the lowest critical category first).

Output format

  1. Scope block — module/paths + entry-point list, so the scorecard is re-runnable.
  2. Scorecard table — one row per category: Category | Rating | Evidence (file:line or named empty searches) | Gap. Every row MUST carry evidence; a rating without a citation is invalid.
  3. Overall rating — with the roll-up shown (median=…, lowest critical=…, cap=… → overall=…), never a bare verdict.
  4. Top-3 next steps — ordered by roll-up impact.

Gotcha

  • The model tends to rate from vibes ("looks well-structured") — a rating row without file:line or named empty searches is invalid; redo it.
  • Don't let a Strong non-critical category mask a Weak critical one — the cap rule exists precisely because a polished logging setup does not offset missing authorization.
  • A vulnerability found mid-assessment is out of scope for the scorecard — note it and route to security-audit (with its false-positive gate) instead of inlining findings here.

Do NOT

  • Do NOT emit a rating without evidence — every row cites file:line or the empty searches that prove absence.
  • Do NOT average away critical categories — the deterministic cap always wins.
  • Do NOT turn the scorecard into a finding list — posture assessment and vulnerability hunting are different deliverables.
  • Do NOT assess unscoped ("the whole app") when the user named a module.

See also

What ships with it: 1 file

2.0 KB alongside SKILL.md

evals/

Keep looking

Skills are one crate of 327,069. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.