Teaches coding agents how to build TUIs with TamboUI correctly: API-level selection, render-thread discipline, display-width safety, CSS-aware element authoring, and JFR conventions.
94
93%
Does it follow best practices?
Impact
97%
2.77xAverage score across 3 eval scenarios
Passed
No known issues
Process steps in order, do not skip ahead. Every JFR event in TamboUI follows the same five constraints (name, package, enabled(), commit(), polyfill) — the steps below enforce them.
@Name as dev.tamboui.{area}.{thing} — {area} is the module concern (terminal, toolkit, css), {thing} is the operation in lowercase, dot- or hyphen-free (draw, route, focus.change is OK if it nests cleanly){Thing}Event in PascalCase (e.g., ToolkitFocusChangeEvent)Event; the JFR @Name must not include Eventdev.tamboui.jfr (in tamboui-core)dev.tamboui.toolkit.jfr (in tamboui-toolkit)dev.tamboui.{module}.jfr if no JFR package exists yet, otherwise reuse the existing onejdk.jfr.Event; annotate with @Name("dev.tamboui.{area}.{thing}"), @Label("Human Readable Label"), @Category({"TamboUI", "{Area}"}), and @Description("Short description.")@Label annotations (e.g., @Label("Duration") public long durationNanos;)public final — events are values, not extension pointspublic static boolean enabled() { return EventTypeCache.isEnabled({ThingEvent}.class); } (or use whatever the rest of dev.tamboui.jfr already does — match the existing pattern)public static void commit({payload args}) { var e = new {ThingEvent}(); e.field = arg; ...; e.commit(); } helpercommit (matching the JDK convention) — not trace, not recordbuild.gradle.kts and check the dependencies { ... } blockcompileOnly(libs.jfr.polyfill), add it — without this the module fails to compile under Java 8 source levelcompileOnly deliberatelyif ({ThingEvent}.enabled()) { {ThingEvent}.commit(...); } — both pieces are required, never one without the otherSystem.nanoTime() defeats the pointREADME.md and to docs/src/docs/asciidoc/tracing.adoc./gradlew -q :{module}:test to verify the module still builds and existing tests pass./gradlew -q javadoc — TamboUI treats javadoc warnings as errors, and JFR annotations need full coveragejcmd {pid} JFR.start name=tamboui-test settings=profile duration=10s filename=test.jfr and inspect with jfr print — this is optional but recommended