Build terminal chat UIs with TUI4J - Elm Architecture chat client for AI agent demos with Spring Boot integration
90
90%
Does it follow best practices?
Impact
94%
1.38xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests whether the agent correctly sets up TUI4J with the exact Maven coordinates and version, follows the Elm Architecture Model pattern with correct imports, uses Program.withAltScreen().run() to launch, and includes a dependency verification step in the build script.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Correct groupId",
"description": "pom.xml contains groupId 'com.williamcallahan' for the TUI4J dependency",
"max_score": 8
},
{
"name": "Correct artifactId",
"description": "pom.xml contains artifactId 'tui4j' for the TUI4J dependency",
"max_score": 8
},
{
"name": "Correct version",
"description": "pom.xml uses version '0.3.3' for TUI4J",
"max_score": 8
},
{
"name": "Model interface implemented",
"description": "GreeterModel.java implements the Model interface (not an abstract class or other pattern)",
"max_score": 8
},
{
"name": "init() method",
"description": "GreeterModel.java has an init() method returning a Command (e.g. Cursor::blink)",
"max_score": 8
},
{
"name": "update() method signature",
"description": "GreeterModel.java has update(Message msg) returning UpdateResult",
"max_score": 8
},
{
"name": "view() method",
"description": "GreeterModel.java has a view() method returning String",
"max_score": 8
},
{
"name": "withAltScreen()",
"description": "Program is launched with .withAltScreen().run() — NOT Program.run() alone",
"max_score": 12
},
{
"name": "Correct bubbletea imports",
"description": "Java source uses imports from com.williamcallahan.tui4j.compat.bubbletea.* package",
"max_score": 8
},
{
"name": "Dependency verify step",
"description": "build-and-verify.sh includes a 'mvn dependency:resolve' command",
"max_score": 8
},
{
"name": "Textarea in update()",
"description": "update() forwards Message to Textarea via textarea.update(msg)",
"max_score": 8
},
{
"name": "Enter key handling",
"description": "KeyPressMessage with key 'enter' is handled to submit/process user input",
"max_score": 8
}
]
}