create-walle 0.9.3 → 0.9.4
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.
- package/README.md +2 -1
- package/package.json +1 -1
- package/template/claude-task-manager/db.js +5 -1
- package/template/claude-task-manager/public/css/walle.css +317 -0
- package/template/claude-task-manager/public/index.html +404 -101
- package/template/claude-task-manager/public/js/walle.js +1256 -86
- package/template/claude-task-manager/server.js +189 -14
- package/template/docs/site/api/README.md +146 -0
- package/template/docs/site/skills/README.md +99 -5
- package/template/package.json +1 -1
- package/template/wall-e/agent.js +54 -0
- package/template/wall-e/api-walle.js +452 -3
- package/template/wall-e/brain.js +45 -1
- package/template/wall-e/channels/telegram-channel.js +96 -0
- package/template/wall-e/chat.js +61 -2
- package/template/wall-e/coding-context.js +252 -0
- package/template/wall-e/coding-orchestrator.js +625 -0
- package/template/wall-e/coding-review.js +189 -0
- package/template/wall-e/core-tasks.js +12 -3
- package/template/wall-e/deploy.sh +4 -4
- package/template/wall-e/fly.toml +2 -2
- package/template/wall-e/package.json +4 -1
- package/template/wall-e/skills/_bundled/coding-agent/SKILL.md +17 -0
- package/template/wall-e/skills/_bundled/coding-agent/run.js +142 -0
- package/template/wall-e/skills/_bundled/email-sync/SKILL.md +12 -7
- package/template/wall-e/skills/_bundled/email-sync/mail-reader.jxa +76 -46
- package/template/wall-e/skills/_bundled/email-sync/run.js +42 -2
- package/template/wall-e/skills/_bundled/glean-team-sync/SKILL.md +57 -0
- package/template/wall-e/skills/_bundled/glean-team-sync/run.js +254 -0
- package/template/wall-e/skills/_bundled/slack-mentions/SKILL.md +1 -1
- package/template/wall-e/skills/_bundled/slack-mentions/run.js +268 -121
- package/template/wall-e/skills/_templates/data-fetcher.md +27 -0
- package/template/wall-e/skills/_templates/manual-action.md +19 -0
- package/template/wall-e/skills/_templates/periodic-checker.md +29 -0
- package/template/wall-e/skills/_templates/script-runner.md +21 -0
- package/template/wall-e/skills/claude-code-reader.js +16 -4
- package/template/wall-e/skills/skill-executor.js +23 -1
- package/template/wall-e/skills/skill-validator.js +73 -0
- package/template/wall-e/tests/brain.test.js +3 -3
- package/template/wall-e/tests/coding-agent-integration.test.js +240 -0
- package/template/wall-e/tests/coding-context.test.js +212 -0
- package/template/wall-e/tests/coding-orchestrator.test.js +303 -0
- package/template/wall-e/tests/coding-review.test.js +141 -0
- package/template/claude-task-manager/package-lock.json +0 -1607
- package/template/claude-task-manager/tests/test-ai-search.js +0 -61
- package/template/claude-task-manager/tests/test-editor-ux.js +0 -76
- package/template/claude-task-manager/tests/test-editor-ux2.js +0 -51
- package/template/claude-task-manager/tests/test-features-v2.js +0 -127
- package/template/claude-task-manager/tests/test-insights-cached.js +0 -78
- package/template/claude-task-manager/tests/test-insights.js +0 -124
- package/template/claude-task-manager/tests/test-permissions-v2.js +0 -127
- package/template/claude-task-manager/tests/test-permissions.js +0 -122
- package/template/claude-task-manager/tests/test-pin.js +0 -51
- package/template/claude-task-manager/tests/test-prompts.js +0 -164
- package/template/claude-task-manager/tests/test-recent-sessions.js +0 -96
- package/template/claude-task-manager/tests/test-review.js +0 -104
- package/template/claude-task-manager/tests/test-send-dropdown.js +0 -76
- package/template/claude-task-manager/tests/test-send-final.js +0 -30
- package/template/claude-task-manager/tests/test-send-fixes.js +0 -76
- package/template/claude-task-manager/tests/test-send-integration.js +0 -107
- package/template/claude-task-manager/tests/test-send-visual.js +0 -34
- package/template/claude-task-manager/tests/test-session-create.js +0 -147
- package/template/claude-task-manager/tests/test-sidebar-ux.js +0 -83
- package/template/claude-task-manager/tests/test-url-hash.js +0 -68
- package/template/claude-task-manager/tests/test-ux-crop.js +0 -34
- package/template/claude-task-manager/tests/test-ux-review.js +0 -130
- package/template/claude-task-manager/tests/test-zoom-card.js +0 -76
- package/template/claude-task-manager/tests/test-zoom.js +0 -92
- package/template/claude-task-manager/tests/test-zoom2.js +0 -67
- package/template/docs/openclaw-vs-walle-comparison.md +0 -103
- package/template/docs/ux-improvement-plan.md +0 -84
- package/template/wall-e/docs/specs/2026-04-01-publish-plan.md +0 -112
- package/template/wall-e/docs/specs/SKILL-FORMAT.md +0 -326
- package/template/wall-e/package-lock.json +0 -533
- package/template/wall-e/skills/_bundled/slack-mentions/.watermark.json +0 -4
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
# WALL-E Skill Format Specification
|
|
2
|
-
|
|
3
|
-
**Version:** 1.0.0
|
|
4
|
-
**Date:** 2026-03-31
|
|
5
|
-
**Status:** Draft
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
A WALL-E skill is a **reusable capability** that the agent can invoke to accomplish work. Skills sit between raw tools (Slack MCP, file I/O, shell) and tasks (scheduled/triggered jobs).
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
┌─────────────────────────────────────┐
|
|
13
|
-
│ TASKS (scheduling) │ "Run slack-sync every 15m"
|
|
14
|
-
│ When to run, checkpoints, status │
|
|
15
|
-
├─────────────────────────────────────┤
|
|
16
|
-
│ SKILLS (capabilities) │ "How to sync Slack messages"
|
|
17
|
-
│ Reusable, composable, shareable │
|
|
18
|
-
├─────────────────────────────────────┤
|
|
19
|
-
│ TOOLS (primitives) │ Slack MCP, brain DB, shell
|
|
20
|
-
│ Raw APIs, MCP servers │
|
|
21
|
-
└─────────────────────────────────────┘
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Skill Directory Structure
|
|
25
|
-
|
|
26
|
-
Each skill is a directory containing a `SKILL.md` file and optional supporting files:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
skills/
|
|
30
|
-
slack-sync/
|
|
31
|
-
SKILL.md # Required: metadata + instructions
|
|
32
|
-
run.js # Optional: script entry point
|
|
33
|
-
lib/ # Optional: supporting code
|
|
34
|
-
README.md # Optional: human docs
|
|
35
|
-
morning-briefing/
|
|
36
|
-
SKILL.md # Agent-based skill (no script)
|
|
37
|
-
my-custom-skill/
|
|
38
|
-
SKILL.md
|
|
39
|
-
run.sh # Shell scripts work too
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## SKILL.md Format
|
|
43
|
-
|
|
44
|
-
A SKILL.md file has two parts: **YAML frontmatter** (metadata) and **Markdown body** (instructions).
|
|
45
|
-
|
|
46
|
-
### Minimal Example
|
|
47
|
-
|
|
48
|
-
```markdown
|
|
49
|
-
---
|
|
50
|
-
name: hello-world
|
|
51
|
-
description: A simple test skill that greets the user
|
|
52
|
-
version: 1.0.0
|
|
53
|
-
execution: agent
|
|
54
|
-
---
|
|
55
|
-
# Hello World
|
|
56
|
-
|
|
57
|
-
When invoked, respond with a friendly greeting that includes the owner's name.
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Full Example
|
|
61
|
-
|
|
62
|
-
```markdown
|
|
63
|
-
---
|
|
64
|
-
name: slack-sync
|
|
65
|
-
description: >
|
|
66
|
-
Pull latest Slack messages from active conversations.
|
|
67
|
-
Discovers recently active channels, fetches new messages,
|
|
68
|
-
and stores them in WALL-E's brain for search and context.
|
|
69
|
-
version: 1.2.0
|
|
70
|
-
author: wall-e
|
|
71
|
-
|
|
72
|
-
# Execution mode: "script" (deterministic) or "agent" (LLM-driven)
|
|
73
|
-
execution: script
|
|
74
|
-
entry: run.js
|
|
75
|
-
args: ["--sync"]
|
|
76
|
-
|
|
77
|
-
# What this skill needs to run
|
|
78
|
-
requires:
|
|
79
|
-
env: [] # Environment variables (checked at load time)
|
|
80
|
-
tools: [slack-mcp] # MCP servers or tool modules
|
|
81
|
-
skills: [] # Other skills this depends on
|
|
82
|
-
|
|
83
|
-
# Default trigger for tasks that use this skill
|
|
84
|
-
trigger:
|
|
85
|
-
type: interval # interval | cron | manual | event
|
|
86
|
-
schedule: "every 15m" # Human-readable schedule
|
|
87
|
-
|
|
88
|
-
# Skill configuration schema (validated at runtime)
|
|
89
|
-
config:
|
|
90
|
-
mode:
|
|
91
|
-
type: string
|
|
92
|
-
enum: [incremental, full]
|
|
93
|
-
default: incremental
|
|
94
|
-
description: "incremental = only new messages, full = complete backfill"
|
|
95
|
-
max_channels:
|
|
96
|
-
type: number
|
|
97
|
-
default: 50
|
|
98
|
-
description: "Maximum channels to check per run"
|
|
99
|
-
|
|
100
|
-
# Tags for discovery
|
|
101
|
-
tags: [slack, messaging, sync, ingestion]
|
|
102
|
-
|
|
103
|
-
# Permissions this skill requires (shown to user before install)
|
|
104
|
-
permissions:
|
|
105
|
-
- slack:read # Read Slack messages
|
|
106
|
-
- brain:write # Write memories to brain DB
|
|
107
|
-
- network:outbound # Make HTTP requests
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
# Slack Conversation Sync
|
|
111
|
-
|
|
112
|
-
## What This Skill Does
|
|
113
|
-
|
|
114
|
-
Incrementally syncs Slack messages from your most active conversations
|
|
115
|
-
into WALL-E's brain. Only checks recently active channels (last 7 days)
|
|
116
|
-
to minimize API calls and run time.
|
|
117
|
-
|
|
118
|
-
## How It Works
|
|
119
|
-
|
|
120
|
-
1. Search Slack for YOUR recent messages to discover active channels
|
|
121
|
-
2. Query brain DB for channels with recent activity
|
|
122
|
-
3. For each active channel, fetch messages since last sync
|
|
123
|
-
4. Deduplicate and store new messages as memories
|
|
124
|
-
5. Emit checkpoint after each channel for resume support
|
|
125
|
-
|
|
126
|
-
## Configuration
|
|
127
|
-
|
|
128
|
-
- `mode: incremental` — Only pulls channels with activity in the last 7 days (~35 channels, ~1 min)
|
|
129
|
-
- `mode: full` — Pulls ALL known channels (~800 channels, ~15 min)
|
|
130
|
-
|
|
131
|
-
## Output
|
|
132
|
-
|
|
133
|
-
Returns: `{ new_messages, skipped, channels_done, total_after }`
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
## Frontmatter Fields
|
|
137
|
-
|
|
138
|
-
### Required
|
|
139
|
-
|
|
140
|
-
| Field | Type | Description |
|
|
141
|
-
|-------|------|-------------|
|
|
142
|
-
| `name` | string | Unique skill identifier (kebab-case, e.g., `slack-sync`) |
|
|
143
|
-
| `description` | string | What this skill does. **This is the primary field used for skill discovery.** Write it like search keywords. |
|
|
144
|
-
| `version` | string | Semver version |
|
|
145
|
-
| `execution` | string | `"script"` or `"agent"` |
|
|
146
|
-
|
|
147
|
-
### Optional
|
|
148
|
-
|
|
149
|
-
| Field | Type | Default | Description |
|
|
150
|
-
|-------|------|---------|-------------|
|
|
151
|
-
| `author` | string | — | Skill author |
|
|
152
|
-
| `entry` | string | `run.js` | Entry point file (for script execution) |
|
|
153
|
-
| `args` | string[] | `[]` | Default arguments passed to entry point |
|
|
154
|
-
| `requires.env` | string[] | `[]` | Required environment variables |
|
|
155
|
-
| `requires.tools` | string[] | `[]` | Required MCP servers or tool modules |
|
|
156
|
-
| `requires.skills` | string[] | `[]` | Other skills this depends on |
|
|
157
|
-
| `trigger.type` | string | `manual` | Default trigger: `interval`, `cron`, `manual`, `event` |
|
|
158
|
-
| `trigger.schedule` | string | — | Default schedule (e.g., `"every 15m"`, `"daily at 7am"`) |
|
|
159
|
-
| `config` | object | `{}` | Configuration schema (JSON Schema subset) |
|
|
160
|
-
| `tags` | string[] | `[]` | Discovery tags |
|
|
161
|
-
| `permissions` | string[] | `[]` | Required permissions (shown before install) |
|
|
162
|
-
|
|
163
|
-
## Execution Modes
|
|
164
|
-
|
|
165
|
-
### Script Mode (`execution: script`)
|
|
166
|
-
|
|
167
|
-
Deterministic execution. The skill runs a script file (Node.js, Python, shell) as a child process. No LLM tokens consumed. Fast and predictable.
|
|
168
|
-
|
|
169
|
-
```yaml
|
|
170
|
-
execution: script
|
|
171
|
-
entry: run.js # Relative to skill directory
|
|
172
|
-
args: ["--sync"] # Default CLI arguments
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
The script receives configuration via environment variables:
|
|
176
|
-
- `WALL_E_SKILL_CONFIG` — JSON string of the config object
|
|
177
|
-
- `WALL_E_DATA_DIR` — Path to WALL-E's data directory
|
|
178
|
-
- `WALL_E_SKILL_DIR` — Path to this skill's directory
|
|
179
|
-
|
|
180
|
-
Script exit codes:
|
|
181
|
-
- `0` — Success
|
|
182
|
-
- `1` — Failure (stderr captured as error)
|
|
183
|
-
- `2` — Partial success (some work done, checkpoint saved)
|
|
184
|
-
|
|
185
|
-
### Agent Mode (`execution: agent`)
|
|
186
|
-
|
|
187
|
-
LLM-driven execution. WALL-E reads the SKILL.md instructions and uses available tools to accomplish the task. Flexible but costs tokens.
|
|
188
|
-
|
|
189
|
-
```yaml
|
|
190
|
-
execution: agent
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
The Markdown body below the frontmatter becomes the agent's instructions. The agent can use any available tools (MCP servers, brain DB, shell) to follow the instructions.
|
|
194
|
-
|
|
195
|
-
Agent skills are ideal for:
|
|
196
|
-
- Tasks requiring judgment (summarization, analysis)
|
|
197
|
-
- Multi-step workflows that may vary each run
|
|
198
|
-
- Skills that compose other skills
|
|
199
|
-
- Natural language output (briefings, reports)
|
|
200
|
-
|
|
201
|
-
## Skill Discovery
|
|
202
|
-
|
|
203
|
-
When the agent needs to find relevant skills (e.g., user asks "sync my Slack"), it:
|
|
204
|
-
|
|
205
|
-
1. Loads all installed skill metadata (name, description, tags)
|
|
206
|
-
2. Matches against the user's request using description + tags
|
|
207
|
-
3. For agent-mode skills: reads the full SKILL.md instructions
|
|
208
|
-
4. For script-mode skills: executes the entry point
|
|
209
|
-
|
|
210
|
-
The `description` field is critical for discovery. Write it with:
|
|
211
|
-
- Action verbs: "Pull", "Sync", "Search", "Analyze"
|
|
212
|
-
- Domain keywords: "Slack", "messages", "channels"
|
|
213
|
-
- Use case phrases: "keep conversation context fresh"
|
|
214
|
-
|
|
215
|
-
## Skill Locations & Precedence
|
|
216
|
-
|
|
217
|
-
Skills are loaded from multiple locations. Higher precedence wins on name conflicts:
|
|
218
|
-
|
|
219
|
-
1. **Workspace skills** (highest): `<project>/.wall-e/skills/`
|
|
220
|
-
2. **User skills**: `~/.wall-e/skills/`
|
|
221
|
-
3. **Bundled skills**: `wall-e/skills/_bundled/`
|
|
222
|
-
4. **Registry skills** (lowest): `~/.wall-e/registry-skills/`
|
|
223
|
-
|
|
224
|
-
## Bundled Skills
|
|
225
|
-
|
|
226
|
-
WALL-E ships with these default skills:
|
|
227
|
-
|
|
228
|
-
| Skill | Execution | Description |
|
|
229
|
-
|-------|-----------|-------------|
|
|
230
|
-
| `slack-sync` | script | Incremental Slack message sync |
|
|
231
|
-
| `slack-backfill` | script | Full Slack history backfill |
|
|
232
|
-
| `slack-search` | agent | Search Slack messages with context |
|
|
233
|
-
| `morning-briefing` | agent | Daily meeting prep with calendar + Slack context |
|
|
234
|
-
| `team-pulse` | agent | Monitor team messages for urgent items |
|
|
235
|
-
| `memory-search` | agent | Search and summarize memories |
|
|
236
|
-
|
|
237
|
-
## Skill ↔ Task Relationship
|
|
238
|
-
|
|
239
|
-
Tasks reference skills by name. A task defines WHEN to run; the skill defines HOW.
|
|
240
|
-
|
|
241
|
-
```
|
|
242
|
-
Task: "Conversation Sync"
|
|
243
|
-
type: recurring
|
|
244
|
-
schedule: "every 15m"
|
|
245
|
-
skill: "slack-sync" # ← references the skill
|
|
246
|
-
skill_config: { mode: "incremental" } # ← overrides skill defaults
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
A task can also chain multiple skills:
|
|
250
|
-
```
|
|
251
|
-
Task: "Morning Briefing"
|
|
252
|
-
type: recurring
|
|
253
|
-
schedule: "daily at 7am"
|
|
254
|
-
skill: "morning-briefing" # Agent skill that internally uses:
|
|
255
|
-
# - slack-search (find recent context)
|
|
256
|
-
# - memory-search (find related memories)
|
|
257
|
-
# - calendar integration
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
## Configuration
|
|
261
|
-
|
|
262
|
-
Skills define a config schema in frontmatter. Tasks can override defaults:
|
|
263
|
-
|
|
264
|
-
```yaml
|
|
265
|
-
# In SKILL.md
|
|
266
|
-
config:
|
|
267
|
-
mode:
|
|
268
|
-
type: string
|
|
269
|
-
enum: [incremental, full]
|
|
270
|
-
default: incremental
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
```json
|
|
274
|
-
// In task definition
|
|
275
|
-
{
|
|
276
|
-
"skill": "slack-sync",
|
|
277
|
-
"skill_config": { "mode": "full" }
|
|
278
|
-
}
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
## Skill Development
|
|
282
|
-
|
|
283
|
-
### Creating a new skill
|
|
284
|
-
|
|
285
|
-
```bash
|
|
286
|
-
wall-e skill create my-skill # Scaffold a new skill directory
|
|
287
|
-
wall-e skill test my-skill # Run the skill locally
|
|
288
|
-
wall-e skill validate my-skill # Check SKILL.md format
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
### Publishing
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
wall-e skill publish my-skill # Publish to registry
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Installing third-party skills
|
|
298
|
-
|
|
299
|
-
```bash
|
|
300
|
-
wall-e skill install <name> # From registry
|
|
301
|
-
wall-e skill install <git-url> # From Git repo
|
|
302
|
-
wall-e skill list # Show installed skills
|
|
303
|
-
wall-e skill update --all # Update all skills
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
## Security Model
|
|
307
|
-
|
|
308
|
-
1. **Bundled skills** — Trusted, shipped with WALL-E
|
|
309
|
-
2. **User skills** — Created by the user, trusted by default
|
|
310
|
-
3. **Registry skills** — Third-party, require explicit permission grant
|
|
311
|
-
- Permissions declared in `permissions` field
|
|
312
|
-
- Shown to user before installation
|
|
313
|
-
- Sandboxed: no access beyond declared permissions
|
|
314
|
-
|
|
315
|
-
## Migration from Current System
|
|
316
|
-
|
|
317
|
-
### Current → New
|
|
318
|
-
|
|
319
|
-
| Current | New |
|
|
320
|
-
|---------|-----|
|
|
321
|
-
| `scripts/slack-backfill.js` | `skills/_bundled/slack-backfill/run.js` + `SKILL.md` |
|
|
322
|
-
| `scripts/slack-channel-history.js` | `skills/_bundled/slack-sync/run.js` + `SKILL.md` |
|
|
323
|
-
| `skills/slack-pull-live.js` | `skills/_bundled/slack-sync/incremental.js` |
|
|
324
|
-
| Task with `execution: script` | Task with `skill: "slack-sync"` |
|
|
325
|
-
| Task with `execution: chat` | Task with `skill: "morning-briefing"` |
|
|
326
|
-
| `skills` DB table | Filesystem-based skills + DB for execution history |
|