| name | build-julia-interfaces |
| description | Build and repair Julia user interfaces: simple scripts and installable command-line apps, Comonicon-based command trees in compatible existing projects, styled terminal output and Term.jl live widgets, and custom Makie 0.24 plot recipes. Use for CLI entry points, options and subcommands, terminal reports or TUIs, package plotting extensions, and focused interface tests; use the workload skill instead for subprocess, pipeline, task, or thread mechanics. |
Build Julia Interfaces
Start with the smallest interface that meets the user-facing contract. Keep domain logic in
ordinary functions and make each interface a thin adapter.
Route the Task
Open only the references required by the task.
Apply These Defaults
- For one small command, use a plain Julia function plus Base
@main on Julia 1.11+.
- Use a Pkg app only on Julia 1.12+ when package installation is part of the requirement
and the project accepts that Pkg app support is currently experimental.
- Add a CLI framework only for meaningful parsing, help, completion, or subcommand needs.
Keep Comonicon for compatible existing projects; do not make it the default.
- Use plain text first, Term renderables second, and a Term live app only when keyboard
interaction or continuously updated layout is required.
- Use PrettyTables, via
handle-julia-data, for ordinary tabular reports. Use
Term.Tables.Table only inside a Term composition.
- Target Makie 0.24's ComputeGraph for new reactive recipes. Do not copy pre-0.24
Observable mutation patterns into new code.
- Test pure interface logic with explicit argument vectors and
IOBuffers. Avoid elaborate
mocks; add a small end-to-end smoke test only where the installed command contract matters.
For Cmd, environment, pipeline, process-I/O, deadlock, task, or thread details, use
orchestrate-julia-workloads, especially its references/commands-and-processes.md file.