Agent skill

Solid

by openclaw in openclaw/openclaw

Write, port, review, or test Solid 2 UI in OpenClaw (Control UI, plugin views, Canvas hosts), including state ownership, Lit interop during the migration, native overlays, testing, performance, and…

MITAuto-check passed

Install Solid

skills CLI
$ npx skills add openclaw/openclaw --skill solid -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openclaw/openclaw solid --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openclaw/openclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/solid .claude/skills/solid && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
solid
GitHub stars
392k
Token cost
~1.6k tokens
SKILL.md length
574 words
Files
10 (incl. references)
Skills in repo
97
Repo updated
First seen
Licence
MIT

At a glance

Write, port, review, or test Solid 2 UI in OpenClaw (Control UI, plugin views, Canvas hosts), including state ownership, Lit interop during the migration, native overlays, testing, performance, and…

  • Works in 6 steps: Domain owners stay plain TypeScript. The… → Components consume projections from… → Host tags and classes survive. A… → …
  • SKILL.md covers Rules that keep the UI correct, Component skeleton, Traps that compile but break and Testing, plus 1 more section
  • Calls pnpm

What it does

Solid is an agent skill from openclaw/openclaw. Write, port, review, or test Solid 2 UI in OpenClaw (Control UI, plugin views, Canvas hosts), including state ownership, Lit interop during the migration, native overlays, testing, performance, and lessons learned.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `references/components.md`, `references/lessons.md` and `references/lit-interop.md`).

The repository describes itself as: The AI that really does things. Any OS. Any Platform. The lobster way. 🦞. The licence is MIT.

Example prompts

  • “/solid”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Domain owners stay plain TypeScript. The Gateway store, capabilities, lib/sessions/*, caches, persistence, and mutation authority keep…
  2. Components consume projections from ui/src/lib/reactive/ (one per owner and scope, never a second store) and useApplication() for the…
  3. Host tags and classes survive. A component renders its existing openclaw-* tag as a plain host element in light DOM; CSS and E2E select…
  4. One implementation per registered tag. A Solid component must never render a tag that a Lit class still registers. When you port a custom…
  5. One renderer per DOM region, and one lifecycle owner per overlay surface. → overlays
  6. Derive, don't synchronize. createMemo before createSignal; no copies of owner state; no defensive guards for states the owner already…

What it can do on your machine

Read from SKILL.md and the folder at commit 5843d60. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Solid loads about 1.6k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 55 tokens; SKILL.md has 574 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~10k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openclaw/openclaw at commit 5843d60, republished under its MIT licence (© openclaw). 574 words, ~1,576 tokens.

Download SKILL.mdSave it as .claude/skills/solid/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
solid
description
Write, port, review, or test Solid 2 UI in OpenClaw (Control UI, plugin views, Canvas hosts), including state ownership, Lit interop during the migration, native overlays, testing, performance, and lessons learned.

Solid 2 in OpenClaw

The Control UI, plugin views (extensions/x, extensions/workboard), and the Canvas A2UI hosts render with Solid 2 (solid-js, @solidjs/web, @solidjs/signals, compiled by @solidjs/vite-plugin/@solidjs/compiler). Lit 3 and Web Awesome are being removed. Until the last Lit file is gone, ported Solid code runs next to unported Lit at every commit.

Read ui/AGENTS.md first; its state-ownership rules apply to Solid unchanged. Use the exact installed Solid pins from the owning package.json. Dependencies follow the repository's seven-day release-age gate.

Rules that keep the UI correct

  1. Domain owners stay plain TypeScript. The Gateway store, capabilities, lib/sessions/*, caches, persistence, and mutation authority keep synchronous mutate-then-read semantics. Solid 2 writes become visible only after a microtask flush, so authoritative state never lives in a signal. → state and ownership
  2. Components consume projections from ui/src/lib/reactive/ (one per owner and scope, never a second store) and useApplication() for the application context.
  3. Host tags and classes survive. A component renders its existing openclaw-* tag as a plain host element in light DOM; CSS and E2E select it. Never rename a tag or a class. → components
  4. One implementation per registered tag. A Solid component must never render a tag that a Lit class still registers. When you port a custom element, delete its Lit class; remaining Lit callers reach the Solid version through defineSolidBridge. → Lit interop
  5. One renderer per DOM region, and one lifecycle owner per overlay surface. → overlays
  6. Derive, don't synchronize. createMemo before createSignal; no copies of owner state; no defensive guards for states the owner already excludes. Prefer smaller code than the Lit you replace.

Component skeleton

An illustrative component (the tag is an example): it renders its host tag, reads an owner through a projection, and derives instead of copying state.

tsx
import { createMemo, Show } from "solid-js";
import { useApplication } from "../lib/reactive/context.ts";
import { projectAgents } from "../lib/reactive/domain-capabilities.ts";

export function AgentCount(props: { compact?: boolean }) {
  const app = useApplication();
  // Reads through to the synchronous owner; disposed with this component's owner.
  const agents = projectAgents(app.agents);
  // Never destructure props: reads must stay reactive.
  const count = createMemo(() => agents.read().agentsList?.agents.length ?? 0);
  return (
    <openclaw-agent-count class={["agent-count", { "agent-count--compact": props.compact }]}>
      <Show when={count() > 0} fallback={<span class="muted">—</span>}>
        <span>{count()}</span>
      </Show>
    </openclaw-agent-count>
  );
}

Use jsxImportSource: "@solidjs/web" and its JSX types, not Solid 1's solid-js/web.

Show full SKILL.md (271 more words)Show less

Traps that compile but break

  • on:x, attr:x, bool:x, classList, and use: are gone in Solid 2; they compile to literal attributes or no-ops (lint flags them). prop: is the only namespace left.
  • Events are camelCase (onClick). onWaSelect listens to waselect; dashed custom events need onWa-select or a listen(...) ref factory.
  • A read right after a write sees the old value until flush(). Don't write-then-read in handlers; derive.
  • Reactive reads after the first await in an async memo are untracked, and async memos get no AbortSignal.
  • Ref callbacks run unowned: onCleanup inside them does nothing.
  • ARIA enumerations are typed strings: aria-pressed={pressed() ? "true" : "false"}, never a boolean.
  • Solid 1 APIs (createResource, onMount, mergeProps, Context.Provider) don't carry over: use async computations, onSettled, merge, and the context component itself.

More, each with its root cause: lessons learned.

Testing

mountSolid, waitForSolid/flush, renderSolidRef, and the Solid application-context provider live in ui/src/test-helpers/. .test.tsx files are discovered. Keep assertions when you replace a harness. Visual changes need pnpm ui:parity or inspected before/after screenshots. → testing

References

TopicRead when
componentsporting or writing components: Lit → Solid table, JSX bindings, events, refs, styles
state and ownershiptouching owners, projections, async reads, lifetimes, parking, chat render lifecycle
Lit interopa Lit caller uses your component, or your component hosts unported Lit
overlaysmenus, popovers, tooltips, dialogs, focus, positioning, the platform floor
testingunit, browser, E2E, WebKit, parity, retention suites
performancestartup bundle, lazy loading, render budgets
pluginsbuilding a plugin's Control UI view in Solid
migrationporting the remaining Lit, the final sweep, the inventory
lessons learnedbefore a new kind of change; most entries cost a failed CI run to learn

© openclaw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (references) in .agents/skills/solid of openclaw/openclaw.

  • SKILL.md
  • references/components.md
  • references/lessons.md
  • references/lit-interop.md
  • references/migration.md
  • references/overlays.md
  • references/performance.md
  • references/plugins.md
  • references/state-and-ownership.md
  • references/testing.md

Open the folder on GitHubat commit 5843d60

Compare with similar skills

Solid next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Solid compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Solid this skillopenclaw/openclaw392k—~1.6kAutomated safety check: PassMIT
Solidity Securitywshobson/agents40k12 repos~892Automated safety check: PassMIT
Saleor Port Changessaleor/saleor23k—~969Automated safety check: PassBSD-3-Clause
Porthashgraph-online/awesome-codex-plugins1.3k—~3.6kAutomated safety check: PassApache-2.0
Platform PortFastLED/FastLED7.5k—~580Automated safety check: PassMIT
Detecting Port Scanning With Fail2banmukul975/Anthropic-Cybersecurity-Skills34k—~3.2kAutomated safety check: NotesApache-2.0

Similar skills

  • Solidity Security

    wshobson/agents

    Master smart contract security best practices to prevent common vulnerabilities and implement secure Solidity patterns.

    40k GitHub starsUsed in 12 repos~892 tokens
    Backend & APIsAuto-check passed
  • Saleor Port Changes

    saleor/saleor

    Forward-ports or backports a single PR or branch onto the currently checked-out Saleor branch, handling GraphQL version markers and migration numbering along the way.

    23k GitHub stars~969 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Port

    hashgraph-online/awesome-codex-plugins

    Make an existing single-player web game multiplayer in a Homie studio.

    1.3k GitHub stars~3.6k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Platform Port

    FastLED/FastLED

    Guide porting FastLED to new MCU platforms, including int.h types, clockless drivers, SPI implementations, and platform detection.

    7.5k GitHub stars~580 tokensUpdated today
    DevelopmentAuto-check passed
  • Detecting Port Scanning With Fail2ban

    mukul975/Anthropic-Cybersecurity-Skills

    Configures Fail2ban with custom filters and actions to detect port scanning activity, SSH brute force attempts, and network reconnaissance, automatically banning offending IP addresses and alerting…

    34k GitHub stars~3.2k tokensUpdated 1 mo ago
    SecurityAuto-check: notes
  • Solid

    ramziddin/solid-skills

    A skill your agent uses when writing code, implementing features, refactoring, planning architecture, designing systems, reviewing code, or debugging.

    609 GitHub stars~2.7k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from openclaw/openclaw

All 97 skills in this repo
  • Model Usage

    openclaw/openclaw

    Summarize CodexBar local cost logs by model for Codex or Claude, including current or full breakdowns.

    392k GitHub starsUsed in 1 repo~637 tokens
    Auto-check passed
  • Openclaw Live Updater

    openclaw/openclaw

    Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.

    392k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Feishu Doc

    openclaw/openclaw

    Feishu document read/write workflows. An agent skill from openclaw/openclaw.

    392k GitHub stars~516 tokensUpdated today
    Auto-check passed
  • Tmux

    openclaw/openclaw

    Control tmux sessions/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.

    392k GitHub starsUsed in 1 repo~640 tokens
    Auto-check passed
  • Openclaw PR Maintainer

    openclaw/openclaw

    Review, triage, repair, or land OpenClaw issues and pull requests with current-source evidence and the native maintainer workflow.

    392k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Browser Automation

    openclaw/openclaw

    A skill your agent uses when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

    392k GitHub stars~2.9k tokensUpdated today
    Auto-check passed

Questions about Solid

What does Solid do?

Write, port, review, or test Solid 2 UI in OpenClaw (Control UI, plugin views, Canvas hosts), including state ownership, Lit interop during the migration, native overlays, testing, performance, and…. Solid is an agent skill from openclaw/openclaw. Write, port, review, or test Solid 2 UI in OpenClaw (Control UI, plugin views, Canvas hosts), including state ownership, Lit interop during the migration, native overlays, testing, performance, and lessons learned.

How do I install Solid in Claude Code?

Run `npx skills add openclaw/openclaw --skill solid -a claude-code`. Or copy the skill folder (.agents/skills/solid in openclaw/openclaw) into .claude/skills/solid in your project. Claude Code loads it when a task matches its description.

How do I install Solid in Codex?

Run `npx skills add openclaw/openclaw --skill solid -a codex`. Or copy the skill folder (.agents/skills/solid in openclaw/openclaw) into .agents/skills/solid in your project. Codex loads it when a task matches its description.

Can I use Solid in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openclaw/openclaw --skill solid -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/solid, .gemini/skills/solid, .github/skills/solid and .opencode/skills/solid in your project.

What does Solid need to run?

Going by SKILL.md and its folder, Solid needs the command-line tools its instructions call (pnpm).

Does Solid access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Solid safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Solid use?

Solid is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Solid use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.5k tokens, read only when the agent opens those files.

What are the alternatives to Solid?

Skills that share tags, products or a category with Solid: Solidity Security (wshobson/agents, 40k stars), Saleor Port Changes (saleor/saleor, 23k stars), Port (hashgraph-online/awesome-codex-plugins, 1.3k stars) and Platform Port (FastLED/FastLED, 7.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Solid?

openclaw (a GitHub organization) maintains it in openclaw/openclaw, which has 391,658 GitHub stars. The repository holds 97 skills in this directory. The repository was last updated on October 11, 2026.

Source: openclaw/openclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.