agentsclimarketplace

Security maturity assessment

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

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?'From its SKILL.md

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.

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 325,949. 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.