.agents/skills/lavish/SKILL.md
Lavish Editor helps agents turn rich HTML artifacts into collaborative human review surfaces. Whenever you are about to give user a complex response that will be easier to understand via a rich / interactive page, consider using Lavish Editor. First generate an interactive HTML artifact according to user request, then run npx -y lavish-axi <html-file> so the user can visually review it, annotate elements or selected text, queue prompts, and send feedback back through npx -y lavish-axi poll.
You do not need lavish-axi installed globally - invoke it with npx -y lavish-axi <html-file>.
If lavish-axi output shows a follow-up command starting with lavish-axi, run it as npx -y lavish-axi ... instead.
In restricted subprocess sandboxes, CI, or agent harnesses where npx -y exits opaquely (for example with status 216), use an already-installed copy directly: node "$(npm root)/lavish-axi/dist/cli.mjs" <html-file> for a local install, node "$(npm root -g)/lavish-axi/dist/cli.mjs" <html-file> for a global install, or the bare lavish-axi <html-file> bin after installing once.
$ARGUMENTS
If the request above is non-empty, the user invoked /lavish explicitly - build an HTML artifact for that request now, following the workflow below.
If it is empty, infer what to visualize from the conversation.
Use lavish-axi when the user asks for a visual artifact, HTML explainer, interactive prototype, review surface, product or technical plan, comparison, report, or browser-based feedback loop
.lavish/<name>.html in the working directory).npx -y lavish-axi <html-file> to open or resume a review session in the browser.npx -y lavish-axi poll <html-file> to long-poll for the user's annotations, queued prompts, and browser-proven severe layout failures returned as layout_warnings.
On the first poll, prefer --agent-reply "<one-line summary of what you built and what to review first>" so the conversation panel opens with context.
The poll stays silent until the user acts or the real browser proves meaningful content is inaccessible or unusable - leave it running, never kill it.
Cosmetic, intentional, transient, tiny, and uncertain observations remain silent.
Keep the poll in the foreground by default and let it return the feedback directly to the agent.
A background poll is allowed only through a harness-native tracked background-job facility whose completion result is guaranteed to resume or notify the same agent.
Never use nohup, shell &, disown, redirected fire-and-forget processes, or a detached terminal without an explicit verified callback merely to keep polling alive.
If the harness has no completion-aware background facility, use the foreground poll or first wire a verified wake callback into the surrounding supervisor.
Do not tell the user the artifact is being monitored until that wake path is live.
If the poll gets killed or times out anyway, just re-run it - queued feedback is never lost.layout_warnings, follow the returned next_step: repair the severe failure and re-check it before involving the human.--agent-reply "<message>" to reply in the browser and keep the loop going under the same foreground-or-verified-wake-path rule.npx -y lavish-axi end <html-file> when the review is finished.Send & End ends the session. Its final feedback is still delivered once. After that response, polling stops, and the agent must not reopen the session uninvited. Deliver any remaining updates directly in this conversation.Run npx -y lavish-axi playbook <id> for focused, detailed guidance on any of these.
One artifact often combines several playbooks (for example a plan that includes a comparison and a diagram), so MUST open each matching playbook before writing HTML.
For flows, architecture, state, or sequence diagrams, do not hand-build boxes-and-arrows from div/flexbox; open the diagram playbook and use the theme-aware Mermaid snippet from npx -y lavish-axi design unless SVG is needed for richly annotated nodes.
diagram - Map relationships, flows, state, and architecturetable - Turn dense records into scan-friendly review surfacescomparison - Show options, tradeoffs, and current vs target behaviorplan - Explain a product or technical plan before implementationcode - Render source code, code files, patches, PR diffs, and before/after code inside Lavish artifactsinput - Must be used when the agent needs to collect user input on decisions, choices, preferences, triage, scope, or other structured feedback from within the artifactslides - Create a deliberate presentation when slides are requestednpx -y lavish-axi <html-file> to open or resume a Lavish Editor session. If the user explicitly ended the session from the browser, this refuses to reopen it and explains why instead of reopening uninvited - pass --reopen only when the user asks for further review or something important needs their visual attention.lavish// to those asset paths - root paths won't worknpx -y lavish-axi poll <html-file> to wait for user feedback or browser-proven severe layout failures. It long-polls and stays silent until the user sends feedback, ends the session, or the real browser proves meaningful content is inaccessible or unusable, so leave it running - never kill it. Repair and re-check every returned layout failure before involving the human; cosmetic, intentional, transient, tiny, and uncertain observations stay silent. Keep the poll in the foreground by default and let it return the feedback directly to the agent. A background poll is allowed only through a harness-native tracked background-job facility whose completion result is guaranteed to resume or notify the same agent. Never use nohup, shell &, disown, redirected fire-and-forget processes, or a detached terminal without an explicit verified callback merely to keep polling alive. If the harness has no completion-aware background facility, use the foreground poll or first wire a verified wake callback into the surrounding supervisor. Do not tell the user the artifact is being monitored until that wake path is live. If the poll gets killed or times out anyway, just re-run it - queued feedback is never lost. Send & End ends the session. Its final feedback is still delivered once. After that response, polling stops, and the agent must not reopen the session uninvited..mermaid containers become embedded, editable Excalidraw whiteboards in the browser (click a diagram to unlock editing; a Fullscreen action opens it over the whole viewport) - flowchart, sequence, class, ER, and state diagrams convert to editable shapes; other types embed as an image to draw on. Scenes autosave locally; when a reload detects a changed Mermaid source, the reviewer explicitly chooses to re-convert and discard saved edits or keep editing the saved scene. Standalone and exported copies still render plain Mermaid. Queue feedback adds a prompt to the Conversation panel; when the user sends it, poll returns a tag "whiteboard" prompt carrying a bounded edit summary plus local scenePath (.excalidraw JSON) and previewPath (PNG) files - read the summary first, open the files only when needed, then apply the edits by updating the Mermaid source in the artifact (never try to write the scene back)npx -y lavish-axi end <html-file> to end a session as the agent - ending it this way still allows a plain reopen later. When the user ends it from the browser instead, a later npx -y lavish-axi <html-file> refuses to reopen it without --reopennpx -y lavish-axi export <html-file> [--out <path>] to write a portable copy of the artifact - one HTML file with its LOCAL assets inlined - so it opens with no Lavish server and no sibling files. Remote CDN/font references are left as links, so it needs network to render those. Users can also export from the browser chrome's overflow menunpx -y lavish-axi share <html-file> [--password <pw>] [--token <t>] to publish the artifact on ht-ml.app (https://ht-ml.app), a third-party hosting service not part of Lavish, and get back a visitable URL. Shares are PUBLIC by default, so anyone with the link can open them. Pass --password to publish a PRIVATE password-protected page; viewers must supply the password to view. Local assets are inlined; remote refs load over the network. It returns the url plus a secret update_key for managing the page later. Use --token or LAVISH_AXI_HTML_APP_TOKEN only when you have an optional bearer token; it is never required. Users can also publish from the browser chrome's overflow menunpx -y lavish-axi stop to shut down the background server (it also self-stops when idle or after the last session ends with nothing connected)npx -y lavish-axi playbook <playbook_id> for focused artifact guidance. One artifact often combines several playbooks (for example a plan that includes a comparison and a diagram), so MUST open each matching playbook before writing HTML.npx -y lavish-axi design for a content-to-playbook router, a copy-pasteable CDN snippet, a Mermaid CDN snippet/init for diagrams, and the DaisyUI component reference. When you deliver the artifact, state which of the three design sources you used and why.