plugins/lisa-openclaw-copilot/skills/lisa-openclaw-setup/SKILL.md
Set up OpenClaw as the chat-surface runtime for this project's staff roles. Verifies the openclaw CLI, the ~/.openclaw/openclaw.json config, a secret provider, and the required gateway capabilities (sessions_spawn, native-reply session scoping, the NO_REPLY sentinel), then writes a lean `openclaw` section to .lisa.config.json. Prerequisite for lisa-openclaw-connect-staff and lisa-openclaw-connect-repo-topic. Use when a project wants its facilitator/specialist staff reachable from Telegram or Slack.
npx skillsauth add codyswanngt/lisa lisa-openclaw-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Verify the OpenClaw runtime prerequisites and record a minimal, placeholder-safe pointer in
.lisa.config.json so the connect skills have what they need. This skill writes only setup-level
pointers — never tokens, channel/topic/group ids, bot handles, or route tables. Those live in
~/.openclaw/openclaw.json (OpenClaw's own machine-local source of truth) and are written by the
connect skills, never committed.
This SKILL.md is self-contained and runs identically under Claude Code and Codex. There is no command/argument layer in Codex, so do not rely on one.
OpenClaw is a locally-hosted multi-agent gateway. A CLI (openclaw, usually at
~/.local/bin/openclaw) manages a config file (~/.openclaw/openclaw.json) that defines agents,
chat-channel bindings (Telegram groups/topics, Slack channels), and routing. A long-running
gateway process delivers chat messages to agents and back. Agents reach other agents internally
via sessions_spawn rather than by messaging each other on the chat platform.
Gather (ask only for what is missing):
telegram or slack0600 local token files). Capture only its type and a reference, never a value.The facilitator and specialists are staff roles. A companion plugin (lisa-wiki) scaffolds a
staff role's "brain" (a wiki/staff/<id>.md doc page plus a dual-runtime subagent at
.claude/agents/<id>.md and .codex/agents/<id>.toml) from a config.staff[] entry. This plugin
wires that role to a chat surface — the "body".
If config.staff[] (in .lisa.config.json) has no entries yet, tell the user to define their staff
first:
/lisa:add-role <Role> (e.g. /lisa:add-role Chief of Staff).$lisa-wiki:lisa-wiki-add-role with the role.Only auto-delegate if that skill is actually available in the active runtime; otherwise just print the exact next step and stop.
Resolve a usable openclaw binary, in order:
~/.local/bin/openclawopenclaw on PATHIf none is found, stop and tell the user to install OpenClaw and re-run. Record the resolved path for
the config's configPath/CLI discovery only if it is non-standard.
Confirm ~/.openclaw/openclaw.json exists and is valid JSON. Do not print token values found
inside it. If it is missing, instruct the user to initialize OpenClaw (its own init flow creates the
file) before continuing.
Confirm a token-storage mechanism is configured. Acceptable: the OpenClaw-configured secret provider,
an OS keychain entry, or 0600-permissioned local token files outside the repo. Capture the provider
type and a non-secret reference only.
The connect skills depend on three OpenClaw behaviors. Probe for them and fail closed (warn loudly, do not silently proceed) if any is missing:
sessions_spawn — internal agent-to-agent dispatch (how the facilitator consults specialists).thread_ts; Telegram supergroup + forum topic + root message_id), and
replies in that thread continue the same session, so concurrent threads don't share short-term
context.NO_REPLY sentinel — after an agent sends a message with the platform message tool, returning
exactly NO_REPLY as its assistant final prevents the gateway from posting a duplicate loose
message.Probe via the OpenClaw CLI/version and a non-mutating validate, e.g.:
openclaw --version
openclaw config validate
If a capability cannot be confirmed, record it as an unmet prerequisite. The connect skills must refuse to create routes that would post duplicates or leak cross-thread context.
Update only the openclaw section of .lisa.config.json. Parse the existing JSON, preserve all
other keys and formatting as much as practical, and write structurally (never string-splice). Shape:
{
"openclaw": {
"defaultPlatform": "telegram",
"facilitatorAgentId": "<facilitator-agent-id>",
"secretProvider": {
"type": "<secret-provider-type>",
"ref": "<secret-provider-ref>"
},
"configPath": "~/.openclaw/openclaw.json"
}
}
Rules for this section:
defaultPlatform: "telegram" or "slack".facilitatorAgentId: the default facilitator/chief id only — not per-surface routing.secretProvider: a pointer only; never token material.configPath: optional; default ~/.openclaw/openclaw.json. Set only for non-standard installs.~/.openclaw/openclaw.json.Finish with: resolved CLI path, config-file status, secret-provider type/ref, each capability probe
result (pass / warn / unknown), the openclaw section written, and the exact next command/skill
(lisa-openclaw-connect-staff or lisa-openclaw-connect-repo-topic).
lisa-openclaw-connect-staff, lisa-openclaw-connect-repo-topic. Staff "brains" come from the
lisa-wiki plugin's add-role.
documentation
Onboard a user to the project via its LLM Wiki. Interviews the user about themselves in relation to the project, captures that to project-scoped memory only, then gives a guided tour of what the project is and sample questions they can ask. Use when someone is new to the project or asks to be onboarded. Read-mostly — it does not open PRs or write PII into the wiki.
documentation
Migrate an existing, hand-rolled wiki implementation onto the lisa-wiki kernel — phased and compatibility-first, with a strict no-loss guarantee. Use when adopting lisa-wiki in a repo that already has its own wiki/, ingest skills, docs, or roles. Renaming things into the canonical shape is fine; losing functionality or data is not. Ends by running /doctor.
development
Health-check the LLM Wiki. Reports orphan pages, contradictions, stale claims, broken internal links, missing index/log coverage, structure-manifest violations, and secret/tenant leaks. Use periodically or before hardening a wiki. Read-only — it reports findings, it does not fix them.
testing
Ingest source material into the LLM Wiki. With an argument (URL, file path, or prompt) it ingests that one source; with no argument it runs a full ingest across every enabled non-external-write source. Routes to the right connector, then runs the ordered pipeline (source note → synthesis → index → log → verify → state → commit/PR). Use whenever new knowledge should enter the wiki.