@codyswann/lisa 2.29.0 → 2.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.agents/plugins/marketplace.json +24 -0
  2. package/.claude-plugin/marketplace.json +6 -0
  3. package/package.json +1 -1
  4. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  5. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  6. package/plugins/lisa/skills/github-build-intake/SKILL.md +56 -5
  7. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  8. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  9. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  13. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  14. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  15. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +8 -0
  16. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +32 -0
  17. package/plugins/lisa-openclaw/commands/connect-repo-topic.md +7 -0
  18. package/plugins/lisa-openclaw/commands/connect-staff-slack.md +7 -0
  19. package/plugins/lisa-openclaw/commands/connect-staff-telegram.md +7 -0
  20. package/plugins/lisa-openclaw/commands/setup-openclaw.md +7 -0
  21. package/plugins/lisa-openclaw/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  22. package/plugins/lisa-openclaw/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  23. package/plugins/lisa-openclaw/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  24. package/plugins/lisa-openclaw/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  25. package/plugins/lisa-openclaw/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  26. package/plugins/lisa-openclaw/skills/lisa-openclaw-setup/SKILL.md +138 -0
  27. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  29. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  33. package/plugins/src/base/skills/github-build-intake/SKILL.md +56 -5
  34. package/plugins/src/openclaw/.claude-plugin/plugin.json +6 -0
  35. package/plugins/src/openclaw/commands/connect-repo-topic.md +7 -0
  36. package/plugins/src/openclaw/commands/connect-staff-slack.md +7 -0
  37. package/plugins/src/openclaw/commands/connect-staff-telegram.md +7 -0
  38. package/plugins/src/openclaw/commands/setup-openclaw.md +7 -0
  39. package/plugins/src/openclaw/skills/lisa-openclaw-connect-repo-topic/SKILL.md +137 -0
  40. package/plugins/src/openclaw/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +109 -0
  41. package/plugins/src/openclaw/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  42. package/plugins/src/openclaw/skills/lisa-openclaw-connect-staff/references/platform-routing.md +83 -0
  43. package/plugins/src/openclaw/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  44. package/plugins/src/openclaw/skills/lisa-openclaw-setup/SKILL.md +138 -0
  45. package/scripts/build-plugins.sh +1 -1
  46. package/scripts/generate-codex-plugin-artifacts.mjs +16 -0
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: lisa-openclaw-setup
3
+ description: 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.
4
+ ---
5
+
6
+ # lisa-openclaw-setup
7
+
8
+ Verify the OpenClaw runtime prerequisites and record a minimal, placeholder-safe pointer in
9
+ `.lisa.config.json` so the connect skills have what they need. **This skill writes only setup-level
10
+ pointers** — never tokens, channel/topic/group ids, bot handles, or route tables. Those live in
11
+ `~/.openclaw/openclaw.json` (OpenClaw's own machine-local source of truth) and are written by the
12
+ connect skills, never committed.
13
+
14
+ This SKILL.md is self-contained and runs identically under Claude Code and Codex. There is no
15
+ command/argument layer in Codex, so do not rely on one.
16
+
17
+ ## What OpenClaw is (so the checks make sense)
18
+
19
+ OpenClaw is a locally-hosted multi-agent gateway. A **CLI** (`openclaw`, usually at
20
+ `~/.local/bin/openclaw`) manages a **config file** (`~/.openclaw/openclaw.json`) that defines agents,
21
+ chat-channel bindings (Telegram groups/topics, Slack channels), and routing. A long-running
22
+ **gateway** process delivers chat messages to agents and back. Agents reach other agents internally
23
+ via `sessions_spawn` rather than by messaging each other on the chat platform.
24
+
25
+ ## Required inputs
26
+
27
+ Gather (ask only for what is missing):
28
+
29
+ - **platform** the project will default to: `telegram` or `slack`
30
+ - **facilitator agent id** — the single human-facing "chief of staff" agent id (a staff role id; see
31
+ the soft dependency below)
32
+ - **secret provider** — how OpenClaw stores bot/app tokens (e.g. the OS keychain, a named secret
33
+ manager, or `0600` local token files). Capture only its *type* and a *reference*, never a value.
34
+
35
+ ## Soft dependency on staff roles
36
+
37
+ The facilitator and specialists are **staff roles**. A companion plugin (`lisa-wiki`) scaffolds a
38
+ staff role's "brain" (a `wiki/staff/<id>.md` doc page plus a dual-runtime subagent at
39
+ `.claude/agents/<id>.md` and `.codex/agents/<id>.toml`) from a `config.staff[]` entry. This plugin
40
+ wires that role to a chat surface — the "body".
41
+
42
+ If `config.staff[]` (in `.lisa.config.json`) has no entries yet, tell the user to define their staff
43
+ first:
44
+
45
+ - In Claude Code: run `/lisa:add-role <Role>` (e.g. `/lisa:add-role Chief of Staff`).
46
+ - In Codex: invoke `$lisa-wiki:lisa-wiki-add-role` with the role.
47
+
48
+ Only auto-delegate if that skill is actually available in the active runtime; otherwise just print the
49
+ exact next step and stop.
50
+
51
+ ## Workflow
52
+
53
+ ### 1. Locate the OpenClaw CLI
54
+
55
+ Resolve a usable `openclaw` binary, in order:
56
+
57
+ 1. `~/.local/bin/openclaw`
58
+ 2. `openclaw` on `PATH`
59
+ 3. a path the user supplies
60
+
61
+ If none is found, stop and tell the user to install OpenClaw and re-run. Record the resolved path for
62
+ the config's `configPath`/CLI discovery only if it is non-standard.
63
+
64
+ ### 2. Verify the config file
65
+
66
+ Confirm `~/.openclaw/openclaw.json` exists and is valid JSON. Do **not** print token values found
67
+ inside it. If it is missing, instruct the user to initialize OpenClaw (its own init flow creates the
68
+ file) before continuing.
69
+
70
+ ### 3. Verify a secret provider
71
+
72
+ Confirm a token-storage mechanism is configured. Acceptable: the OpenClaw-configured secret provider,
73
+ an OS keychain entry, or `0600`-permissioned local token files outside the repo. Capture the provider
74
+ *type* and a non-secret *reference* only.
75
+
76
+ ### 4. Probe required gateway capabilities
77
+
78
+ The connect skills depend on three OpenClaw behaviors. Probe for them and **fail closed** (warn
79
+ loudly, do not silently proceed) if any is missing:
80
+
81
+ - **`sessions_spawn`** — internal agent-to-agent dispatch (how the facilitator consults specialists).
82
+ - **Native-reply session scoping** — a top-level human request seeds a session keyed to its thread
83
+ root (Slack channel + root `thread_ts`; Telegram supergroup + forum topic + root `message_id`), and
84
+ replies in that thread continue the same session, so concurrent threads don't share short-term
85
+ context.
86
+ - **`NO_REPLY` sentinel** — after an agent sends a message with the platform message tool, returning
87
+ exactly `NO_REPLY` as its assistant final prevents the gateway from posting a duplicate loose
88
+ message.
89
+
90
+ Probe via the OpenClaw CLI/version and a non-mutating validate, e.g.:
91
+
92
+ ```sh
93
+ openclaw --version
94
+ openclaw config validate
95
+ ```
96
+
97
+ If a capability cannot be confirmed, record it as an unmet prerequisite. The connect skills must
98
+ refuse to create routes that would post duplicates or leak cross-thread context.
99
+
100
+ ### 5. Write the lean config section
101
+
102
+ Update **only** the `openclaw` section of `.lisa.config.json`. Parse the existing JSON, preserve all
103
+ other keys and formatting as much as practical, and write structurally (never string-splice). Shape:
104
+
105
+ ```json
106
+ {
107
+ "openclaw": {
108
+ "defaultPlatform": "telegram",
109
+ "facilitatorAgentId": "<facilitator-agent-id>",
110
+ "secretProvider": {
111
+ "type": "<secret-provider-type>",
112
+ "ref": "<secret-provider-ref>"
113
+ },
114
+ "configPath": "~/.openclaw/openclaw.json"
115
+ }
116
+ }
117
+ ```
118
+
119
+ Rules for this section:
120
+
121
+ - `defaultPlatform`: `"telegram"` or `"slack"`.
122
+ - `facilitatorAgentId`: the default facilitator/chief id only — **not** per-surface routing.
123
+ - `secretProvider`: a pointer only; never token material.
124
+ - `configPath`: optional; default `~/.openclaw/openclaw.json`. Set only for non-standard installs.
125
+ - **Reject** writing tokens, channel ids, topic ids, group ids, Slack thread roots, bot handles, or
126
+ repo paths here. If the user offers them, decline and explain they belong in
127
+ `~/.openclaw/openclaw.json`.
128
+
129
+ ### 6. Report
130
+
131
+ Finish with: resolved CLI path, config-file status, secret-provider type/ref, each capability probe
132
+ result (pass / warn / unknown), the `openclaw` section written, and the exact next command/skill
133
+ (`lisa-openclaw-connect-staff` or `lisa-openclaw-connect-repo-topic`).
134
+
135
+ ## Related
136
+
137
+ `lisa-openclaw-connect-staff`, `lisa-openclaw-connect-repo-topic`. Staff "brains" come from the
138
+ `lisa-wiki` plugin's `add-role`.
@@ -53,7 +53,7 @@ for stack in "${STACKS[@]}"; do
53
53
  done
54
54
 
55
55
  # Standalone plugins (not language stacks): each builds plugins/src/<name> -> plugins/lisa-<name>
56
- STANDALONE=(wiki)
56
+ STANDALONE=(wiki openclaw)
57
57
  for name in "${STANDALONE[@]}"; do
58
58
  build_plugin "$name" "lisa-$name"
59
59
  done
@@ -207,6 +207,22 @@ function metadataFor(pluginName) {
207
207
  "Query the wiki",
208
208
  ],
209
209
  },
210
+ "lisa-openclaw": {
211
+ displayName: "Lisa OpenClaw",
212
+ description:
213
+ "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
214
+ shortDescription: "Staff on Telegram/Slack via OpenClaw",
215
+ longDescription:
216
+ "Wire staff roles to human chat surfaces through OpenClaw: set up the gateway prerequisites, connect a facilitator (chief of staff) and its specialists on Telegram or Slack with hub-and-spoke routing, and bind Telegram forum topics to dispatcher+worker pairs for repo-coding work. Distributed for both Claude Code and Codex.",
217
+ category: "Productivity",
218
+ capabilities: ["Interactive", "Write"],
219
+ keywords: ["openclaw", "telegram", "slack", "agents", "chat-ops"],
220
+ defaultPrompt: [
221
+ "Set up OpenClaw for this project",
222
+ "Connect my chief of staff to Telegram",
223
+ "Connect staff to Slack via OpenClaw",
224
+ ],
225
+ },
210
226
  };
211
227
  return (
212
228
  map[pluginName] ?? {