kotlin-functional-programming — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited kotlin-functional-programming (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.
references/ before advising (see References section below for which file covers which topics).val; treat var as a code smell requiring justification.if, when, try as expressions that return values assigned to val.sealed interface; never add else to an exhaustive when.@JvmInline value class to prevent argument-order bugs at zero runtime cost.T?, Result<T>, or sealed error hierarchies — not exceptions.inline on lambda-taking utilities to eliminate allocation overhead.map, filter, fold, flatMap, …).Sequence only for large datasets with multiple chained operations.tailrec for linear recursion, DeepRecursiveFunction for tree/graph recursion.suspend functions and Flow pipelines; prefer coroutineScope over GlobalScope.Raise, logging, transaction scope).Follow §2 (Pure Functions), §3 (Immutability), §17 (Functional Core, Imperative Shell). Pass all dependencies as parameters; return new values instead of mutating inputs.
Follow §5 (Sealed Types), §6 (Value Classes). Prefer sealed interface over sealed class unless subtypes share state. Add validation in value class init blocks ("parse, don't validate").
Follow §7 (Functional Error Handling).
T?Result<T> + runCatchingEither<L, R>Follow §12 (Collections) and §13 (Sequences). Prefer named operations over manual loops. Use fold over reduce when an initial value is needed or the result type differs.
Follow §18 (Testing).
checkAll with Arb for property-based testing of validators and transformations; prefer checkAll over forAll for matcher-based assertions and clearer failures.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.