agentleFS
meshery-extensionsmeshery-extensions/kanvas-site/.agents/skills/lavish/SKILL.md

lavish

Skill42 starsChanged 4 months agoApache-2.0View on GitHub

Turn complex or visual agent responses into rich, reviewable HTML artifacts the user can annotate and send feedback on, using the lavish-axi CLI. Use when about to give a plan, comparison, diagram, table, code diff, report, or anything easier to grasp visually than as prose.

We split this skill into the rules it gives an agent

20 rules. 4 are common, 4 are distinctive, and 12 are very specific to this project.

  • 4

    Common

    Most of the 5 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 12

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If lavish-axi output shows a follow-up command starting with lavish-axi, run it as npx -y lavish-axi ...

    line 17
  2. Very specific:

    If the request above is non-empty, the user invoked /lavish explicitly - build an HTML artifact for that request now, following the …

    line 24
  3. Common:

    If it is empty, infer what to visualize from the conversation.

    line 25
  4. Common:

    Use lavish-axi when the user asks for a visual artifact, HTML explainer, interactive prototype, review surface, product or technical plan, …

    line 29
  5. Very specific:

    Create the HTML artifact (default location .lavish/<name>.html in the working directory).

    line 33
  6. Very specific:

    Run npx -y lavish-axi <html-file> to open or resume a review session in the browser.

    line 34
  7. Very specific:

    Run npx -y lavish-axi poll <html-file> to long-poll for the user's annotations, queued prompts, and browser-proven severe layout failures …

    line 35
  8. Distinctive:

    Keep the poll in the foreground by default and let it return the feedback directly to the agent.

    line 39
  9. Very specific:

    Never use nohup, shell &, disown, redirected fire-and-forget processes, or a detached terminal without an explicit verified callback merely …

    line 41
  10. Distinctive:

    If the harness has no completion-aware background facility, use the foreground poll or first wire a verified wake callback into the …

    line 42
  11. Distinctive:

    Do not tell the user the artifact is being monitored until that wake path is live.

    line 43
  12. Distinctive:

    If the poll gets killed or times out anyway, just re-run it - queued feedback is never lost.

    line 44
  13. Very specific:

    If poll returns layout_warnings, follow the returned next_step: repair the severe failure and re-check it before involving the human.

    line 45
  14. Very specific:

    Run npx -y lavish-axi end <html-file> when the review is finished.

    line 47
  15. Common:

    Use visual hierarchy to make the most important decisions, risks, tradeoffs, and next actions obvious at a glance

    line 52
  16. Common:

    Use visual structure such as sections, cards, tables, diagrams, annotated snippets, and side-by-side comparisons instead of long prose

    line 53
  17. Very specific:

    Run npx -y lavish-axi playbook <id> for focused, detailed guidance on any of these.

    line 60
  18. Very specific:

    Run npx -y lavish-axi end <html-file> to end a session as the agent - ending it this way still allows a plain reopen later.

    line 79
  19. Very specific:

    Run npx -y lavish-axi stop to shut down the background server (it also self-stops when idle or after the last session ends with nothing …

    line 82
  20. Very specific:

    Run npx -y lavish-axi playbook <playbook_id> for focused artifact guidance.

    line 83

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Lavish Editor

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.

Request

$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.

When to use

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

Workflow

  1. Create the HTML artifact (default location .lavish/<name>.html in the working directory).
  2. Run npx -y lavish-axi <html-file> to open or resume a review session in the browser.
  3. Run 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.
  4. If poll returns layout_warnings, follow the returned next_step: repair the severe failure and re-check it before involving the human.
  5. Apply human feedback, then poll again with --agent-reply "<message>" to reply in the browser and keep the loop going under the same foreground-or-verified-wake-path rule.
  6. Run npx -y lavish-axi end <html-file> when the review is finished.
  7. 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.

Visual guidance

  • Use visual hierarchy to make the most important decisions, risks, tradeoffs, and next actions obvious at a glance
  • Use visual structure such as sections, cards, tables, diagrams, annotated snippets, and side-by-side comparisons instead of long prose
  • Choose typography, spacing, color, and layout deliberately so the artifact has a clear point of view
  • Prevent horizontal overflow at every nesting level: nested grid/flex children also need minmax(0, 1fr) tracks and min-width: 0, especially when badges, labels, or status text use wide pixel or monospace fonts; wrap, truncate, or contain long unbreakable text deliberately
  • When the artifact would describe existing or current UI or state, show it instead: capture screenshots of the real pages (run the app read-only if needed) and embed them, rather than explaining the current look in prose; reserve prose for what cannot be shown such as rationale, trade-offs, and open questions

Playbooks

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 architecture
  • table - Turn dense records into scan-friendly review surfaces
  • comparison - Show options, tradeoffs, and current vs target behavior
  • plan - Explain a product or technical plan before implementation
  • code - Render source code, code files, patches, PR diffs, and before/after code inside Lavish artifacts
  • input - Must be used when the agent needs to collect user input on decisions, choices, preferences, triage, scope, or other structured feedback from within the artifact
  • slides - Create a deliberate presentation when slides are requested

Commands & rules

  • Run npx -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
  • Unless the user specifies another location, create HTML artifacts in the current working directory under .lavish/
  • Lavish serves the html file through a local express.js server. If your html needs to reference other filesystem assets such as images, CSS, fonts, and local scripts, copy them into the same directory as the HTML file, then reference them with relative paths from that directory. Never prepend / to those asset paths - root paths won't work
  • Run npx -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.
  • Rendered Mermaid diagrams in .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)
  • Run 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 --reopen
  • Run npx -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 menu
  • Run npx -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 menu
  • Run npx -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)
  • Run 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.
  • Lavish does not auto-inject any design system - artifacts stay portable so they render identically when opened directly without lavish-axi running. Before writing any HTML: Decide the design direction in this strict priority order, and only move to the next step when the current one truly yields nothing: (1) if the user asked for a specific look or named design system, use that; (2) otherwise you must first inspect the project the artifact is about - the subject or product whose content or UI it represents, which may differ from your current working directory - and match that project's design system: Tailwind or theme config, shared CSS variables or design tokens, component library, brand assets, or existing styled pages. If the artifact previews, proposes, or mocks a specific app's UI, render it in that app's own design system so it faithfully shows the product, even when you are running in a different repo; (3) only when both steps come up empty, use the Lavish-recommended Tailwind CSS browser runtime v4 + DaisyUI v5, available via CDN, and prefer that CDN snippet over hand-writing styles unless explicitly instructed otherwise by the user. Run 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.
  • 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

Download now (ZIP)

Trending

Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data

Week of Aug 30: 0 new projectsWeek of Sep 6: 0 new projectsWeek of Sep 13: 0 new projectsWeek of Sep 20: 0 new projectsWeek of Sep 27: 0 new projectsWeek of Oct 4: 0 new projectsWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projects
Aug 2026Sep 2026Oct 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 0 in all, so this is a hint, not a trend.
  • Other versions10 projects use a version of this.

    Word for word · 5

    1. meshery/meshery★ 12k100% same
    2. meshery/meshkit★ 230100% same
    3. layer5io/sistent★ 140100% same
    4. layer5io/docs★ 104100% same
    5. meshery/schemas★ 83100% same

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use iterate-pr and cut-release.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • SentrySkill

      iterate-pr

      Iterate on a PR until actionable CI passes and high/medium review feedback is addressed. Use for PR CI failures, review feedback, or green-check loops; do not wait for human approval, draft status, or merge gates.

      Also in 4 projects that use this

    • MicrosoftSkill

      cut-release

      Use this skill to cut an APM release from the current worktree: assess whether the cycle since the last tag warrants a patch or minor bump (semver discipline against the merged-since-last-tag diff), sanitize the [Unreleased] CHANGELOG block into a dated version block with one concise "so what" entry per merged PR (drop internal-only churn, consolidate duplicates), bump pyproject.toml + uv.lock, run the CI-mirror lint chain, and open the release PR. Activate on "ship a release", "cut v0.x", "release prep", "bump and PR", "open release PR", "what kind of release do we need", or any phrasing that ends in opening a release PR -- even when the user does not say "skill". Stops BEFORE tagging; tagging stays a human gate that triggers the release workflow. Refuses to bump to a major (>= 1.0.0) version without explicit operator confirmation.

      Also in 4 projects that use this

  • In this repository6 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.