Choose JavaFX architecture patterns such as plain scene-graph, MVP, MVVM, MVCI, DI, and routed shells.
SkillScore91Maintained
Automatic
◆Frontend / UI pack
Last verified 8/4/2026
What it changes
Passed 20 of 22 test cases with the skill, and 17 of 22 without it.
Without skill77%
With skill91%
Checks it passed that the model alone missed
recommends plain JavaFX with extracted views
recommends maintaining one owner for navigation and service construction
recommends using an abstract navigator interface that takes a route identifier
and 1 more in the full report
4 fixed16 passed either way1 still failing1 broke
Pass-rate lift
+14 pp
Tokens
-7%
Agent turns
0%
Response time
-24%
Model gemini-3.6-flashMeasured 8/4/2026v120 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 4
Prompt
We want to unit test a JavaFX view model that triggers navigation actions without coupling the view model class directly to stage or scene instances. How should navigation be structured inside the view model?
What was checked, without and with the skill
Checked
Without skill
With skill
recommends using an abstract navigator interface that takes a route identifier
Missed
Passed
case-07 · gemini-3.6-flash · 8/4/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md48 linessingle file
JavaFX Architecture and Frameworks
Use this skill when the main question is which architectural approach to choose or how to keep
controllers, services, navigation, and state ownership coherent as the application grows.
Example
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
public final class DashboardViewModel {
private final StringProperty title = new SimpleStringProperty("Dashboard");
private final Navigator navigator;
public DashboardViewModel(Navigator navigator) {
this.navigator = navigator;
}
public StringProperty titleProperty() {
return title;
}
public void openSettings() {
navigator.show("settings");
}
public interface Navigator {
void show(String routeId);
}
}
Setup notes
Use plain JavaFX plus extracted views for small applications.
Reach for MVP, MVVM, MVCI, or framework-backed shells when many views share state and navigation.
Keep one owner for navigation and service construction instead of letting controllers instantiate
each other ad hoc.