CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

142-java-functional-programming

Use when you need to apply functional programming principles in Java — including writing immutable objects and Records, pure functions, functional interfaces, lambda expressions, Stream API pipelines, Optional for null safety, function composition, higher-order functions, pattern matching for instanceof and switch, sealed classes/interfaces for controlled hierarchies, Stream Gatherers for custom operations, currying/partial application, effect boundary separation, and concurrent-safe functional patterns. This should trigger for requests such as Improve the code with Functional Programming; Apply Functional Programming; Refactor the code with Functional Programming; Refactor Java code to use streams or Optionals safely; Improve immutability and pure functions in Java. Part of Plinth Toolkit

69

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured overview body with strong progressive disclosure and a workflow with explicit pre/post validation gates. Its main weakness is internal redundancy: the compile-safety rule appears in four places and the trigger list is duplicated from the description, which inflates token cost without adding guidance.

Suggestions

Consolidate the compile-gate rule: state it once (either in Constraints or Workflow step 1) instead of repeating it in the intro paragraph, the MANDATORY/SAFETY bullets, and Workflow steps 1-2.

Drop the 'When to use this skill' section — it duplicates the description's trigger phrases verbatim and is re-read on every invocation.

Add a brief error-recovery step after the validation gates (e.g., 'if compilation fails, report the error, fix it, and re-run compile before proceeding') to complete the feedback loop.

DimensionReasoningScore

Conciseness

The Constraints paragraph and its MANDATORY/SAFETY bullets restate the compile-gate rule three times, Workflow steps 1-2 repeat the Constraints section, and 'When to use this skill' duplicates the description's trigger list verbatim. No filler explanations, but the redundancy is more than minor.

3 / 5

Actionability

Concrete commands (`./mvnw compile`, `mvn clean verify`), a named reference file, and explicit stop conditions make most guidance executable. Step 4 ('Apply functional programming improvements... keeping side effects at boundaries') stays high-level, deferring all executable detail to the reference.

4 / 5

Workflow Clarity

A clear 5-step sequence with validation checkpoints at both ends: compile gate with 'stop immediately if compilation fails', a maven-compiler-plugin source/target compatibility check, and post-change `mvn clean verify`. Lacks an explicit fix-and-retry recovery loop — it says stop, not what to do next.

4 / 5

Progressive Disclosure

The body is a lean overview that correctly defers detail to one real, one-level-deep reference (references/142-java-functional-programming.md, verified present, ~1000 lines of good/bad examples), signaled in Scope, Constraints, Workflow step 3, and a dedicated Reference section.

5 / 5

Total

16

/

20

Passed

Description

96%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An excellent description: specific, comprehensive, with explicit 'Use when' guidance and natural trigger phrases. The only minor risk is overlap with general Java refactoring/toolkit sibling skills on the broadest trigger phrases.

DimensionReasoningScore

Specificity

Enumerates many concrete capabilities — 'writing immutable objects and Records', 'Stream API pipelines', 'Optional for null safety', 'pattern matching for instanceof and switch', 'Stream Gatherers for custom operations', 'currying/partial application' — with comprehensive coverage of the Java FP domain.

5 / 5

Completeness

Answers both 'what' (the full capability list) and 'when' explicitly ('Use when you need to apply functional programming principles in Java' plus a concrete trigger-phrase list), matching the rubric's top anchor.

5 / 5

Trigger Term Quality

Explicitly lists natural user phrasings ('Improve the code with Functional Programming', 'Refactor Java code to use streams or Optionals safely', 'Improve immutability and pure functions in Java') plus synonyms like streams, Optionals, and lambdas — comprehensive natural-term coverage.

5 / 5

Distinctiveness Conflict Risk

'Functional programming principles in Java' is a clear niche, but broad trigger phrases like 'Refactor the code with Functional Programming' could overlap with sibling Plinth Toolkit refactoring skills or general Java skills — minor overlap risk, not the minimal risk of a fully distinct trigger set.

4 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

jabrena/plinth

Path

skills/142-java-functional-programming/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.